Data: 01/10/2006
Eduardo Henrique
Introduo
um linguagem 100% orientada a objetos. Linguagem fortemente tipada. Um arquivo C# possui a extenso .cs. Sintaxe similar do JAVA.
Eduardo Henrique
Smbolos Especiais
Os marcadores de incio e fim de um bloco de instrues so respectivamente: { } Comentrios // Comenta a linha inteira a partir do ponto de insero. /* ... */ Comenta um bloco de instrues Atribuio = Fim de instruo ;
Eduardo Henrique
3
Variveis
Sintaxe
Tipo Identificador; Ex: int x; ou Tipo Identificador = ValorInicial; Ex: int x = 0;
Eduardo Henrique
Constantes
Palavra reservada
const
Sintaxe
const Tipo Identificador = ValorI;
Ex:
const double pi = 3.14;
Eduardo Henrique
Tipos Enumerados
Definio
Usado para declarar uma enumerao, um tipo distinto que consiste em um jogo de constantes nomeadas chamadas a lista de enumerados.
Sintaxe
enum Identificador { lista_de_valores };
Eduardo Henrique
Tipos Enumerados
Ex:
public class TesteEnum { enum dias {Dom = 1, Seg, Ter, Qua, Qui, Sex, Sab}; public static void Main() { int x = (int) dias.Dom; int y = (int) dias.Sab; Console.WriteLine(Dom = {0}", x); Console.WriteLine(Sab = {0}", y); } }
Eduardo Henrique
Array
Smbolos:
[ ] Para o array em si. { } Para a lista de valores. , Separador de valores ou dimenses.
Sintaxe
Tipo[ ] Identificador = new Tipo[Tamanho]; Tipo[ ] Identificador = new Tipo[Tamanho] {Lista_de_Valores}; // somente para tipos pr-definidos. Tipo[ ] Identificador = {Lista_de_Valores};
Ex:
float[ ] valores = new float[10]; int[ ] numeros = new int[3] {1, 2, 3}; string[ ] mes = {dom, seg, ter, qua, qui, sex, sab};
Eduardo Henrique
8
Array
Array multidimensional
Possui duas ou mais dimenses. retangular quanto a sua dimenso.
Sintaxe
Tipo[ , ... , ] Identificador = new Tipo[ Tam,...,Tam ];
Ex:
string [ , ] Vetor = new string[2, 2] {{aa, ab} , {ba, bb}};
Eduardo Henrique
Array
Matrizes de Array (jagged)
Possui dois ou mais arrays. Cada dimenso tem o se prprio tamanho, no sendo portanto de dimenso retangular.
Sintaxe
Tipo[ ]...[ ] Identificador = new Tipo[ Tam]...[Tam ];
Ex:
string [ ] [ ] Matriz = new string[2] [2];
Eduardo Henrique
10
Tipos Inteiros
TIPO
byte sbyte int uint long ulong short ushort 8 bits (0 a 255) 8 bits (-127 a 128) 32 bits (-2.147.483.648 a 2.147.483.147) 32 bits (0 a 4.294.967.295) 64 bits (-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807) 64 bits (0 a 18.446.744.073.709.551.615) 16 bits (-32.768 a 32.767) 16 bits (0 a 65.535)
SIGNIFICADO
Eduardo Henrique
11
Ponto Flutuante
TIPO float SIGNIFICADO 4 bytes ( 1.5 x 10 -45 a 3.4 x 1038 ). Preciso de 7 casas decimais. 8 bytes ( 1.5 x 10 -45 a 1.7 x 10308 ). Preciso de 15 casas decimais. 128 bytes ( 1.5 x 10 -45 a 1.7 x 10308 ). Preciso de 28 casas decimais.
double
decimal
Eduardo Henrique
12
Caractere
TIPO char SIGNIFICADO Unicode de 16 bits. O caractere char representado entre apstrofo. Ex: char sexo = M; Unicode com at 1 gigabyte. A string representada entre aspas. Ex: string sexo = M;
string*1
Operadores Lgicos
SMBOLO SIGNIFICADO
==
!= >
Igual
Diferente Maior
>=
< <= ! && & || ||
Maior ou Igual
Menor Menor ou Igual Not (No) E (Conjuno lgica) E (Conjuno bit a bit) Ou (Disjuno lgica) Ou (Disjuno bit a bit)
Eduardo Henrique
14
Operadores Aritmticos
SMBOLO + * SIGNIFICADO adio de valor e concatenao de strings. subtrao de valores multiplicao de valores
/
%
diviso de valores
obtm o resto de uma diviso
Eduardo Henrique
15
Caracteres de Formatao
TIPO
C ou c E ou e F ou f G ou g P ou p X ou x
SIGNIFICADO
Representam valores monetrios Formato de Notao Cientifica. Representam o formato de Ponto Fixo. Formato Geral dos nmeros. Formato de porcentagem. Formatao para Hexadecimal.
Eduardo Henrique
16
Caracteres de Formatao
TIPO
dd dddd MM MMMM yyyy hh HH Dia por extenso. Ms com duas casas. Ms por extenso. Ano com quatro casas. Hora com duas casas no formato de 12 horas. Hora com duas casas no formato de 24 horas. Minutos com duas casas. Segundo com duas casas.
Eduardo Henrique
17
SIGNIFICADO
Dia do ms com duas casas.
mm
ss
Classe DateTime
Definio
Classe para trabalhar com datas. Principais mtodos.
MTODO
AddDays AddHours AddMonths AddYears Subtract
SIGNIFICADO
Soma um nmero de dias a uma data. Soma um nmero de horas a uma hora. Soma um nmero de meses a uma data. Soma um nmero de anos a uma data. Subtrai um valor de uma data e hora.
Eduardo Henrique
18
Classe DateTime
TIPO Now Today Date Day DayOfWeek DayOfYear Hour Minute Month SIGNIFICADO Exibe a data e a hora atual do servidor. Exibe a data atual do Servidor. Exibe a data com o valor setado para meia-noite Exibe o dia de uma data. Exibe o dia da semana, sendo: 0-Domingo, ... Exibe o dia do ano, sendo de 1 at 366. Exibe a hora. Exibe os minutos. Exibe o ms de uma data.
Second
Year
Exibe os segundos.
Exibe o ano de uma data.
Eduardo Henrique
19
Converso de Tipos
Existem duas formas:
Implcita So converses automticas e nada precisa ser feito.
Ex: int i = 1; float f = i;
Eduardo Henrique
20
Convert
A classe Convert permite realizar vrios tipos de type cast (converses de tipos), conforme ilustrado abaixo.
MTODO
ToInt16(X) ToInt32(X) ToInt64(X) ToDateTime(X) ToString(X)
SIGNIFICADO
Tenta converter X em um short. Tenta converter X em um int. Tenta converter X em um long. Tenta converter X em um DateTime. Tenta converter X em uma string.
Eduardo Henrique
21
Mtodo Parse
O mtodo Parse tenta realisar a converso de uma string para qualquer outro tipo, pois so implementados por todos os tipos primitivos e a classe DateTime.
Eduardo Henrique
22
Mtodo ToString()
Definio
Converte a varivel ou objeto para string. Aceita parmetros de formao da string.
Sintaxe
Identificador.ToString (Parametros Opcionais)
Ex:
int i = 1; string s = i.ToString(c); // s R$ 1,00
Eduardo Henrique
23
Ex:
string msg = ; string sexo = H; if (sexo == H) msg = Homem; else msg = Mulher;
Eduardo Henrique
24
Switch
Sintaxe
switch (Atributo) { case valor1: Instrues; break; case valor2: Instrues; break; default: // Caso padro Instrues; }
Eduardo Henrique
25
Switch
Ex:
string msg = ; switch (opcao) { case 1: msg = Ruim; break; case 2: msg = Regular; break; case 3: msg = Bom; break; case 4: msg = Otimo; break; default: msg = Excelente; break; }
Eduardo Henrique
26
Lao (While)
Sintaxe
while (Condio verdadeira) { // Instrues }
Ex:
string x = Int i = 1; while (i < { x += i; i++; // } ; 5) // o mesmo que x = x + i Incremento
Eduardo Henrique
27
Lao (For)
For (Inicializao da varivel de controle; Condio; Incremento ou decremento)
{ instrues
Ex:
string x = for (int i=0; i<5; i++) { x += i; } // Obs: i++ o incremento da varivel de controle
Eduardo Henrique
28
Lao (foreach)
Utilizado para percorrer uma coleo. O elemento controle para andar na coleo precisa ser do mesmo tipo da coleo. Sintaxe
foreach (Tipo identificador in Colecao) { instrues }
Ex:
string x = ; int[] numeros = {0,1,2,3,4,5,6,7,8,9}; foreach (int i in numeros) { x += i; }
Eduardo Henrique
29
Lao (do)
Sintaxe
do { // Instrues } while (Condio verdadeira)
Ex:
string x = ; do { x += i; i++; } while (i < 5);
Eduardo Henrique
30
Tratamento de Exceo
Estrutura
try { // Instrues desejadas } catch (<Tipo> <Identificador>) { // Instrues do erro } finally { // Instrues sempre executadas }
Eduardo Henrique
31
Tratamento de Exceo
Regras:
try e catch so obrigatrios; finally opcional; possvel ter vrios catch, e so executados na ordem que seguem e conforme o tipo do erro.
Eduardo Henrique
32
Tratamento de Exceo
Ex:
try { SqlConnection conn = new SqlConnection(StringConexao); conn.Open(); SqlCommand comm = new SqlCommand(InstrucaoSql); comm.ExecuteNonQuery(); } catch (Exception ex) { // lblErro um componente Label lblErro.Text = ex.Message; } finaly { conn.Close(); }
Eduardo Henrique
33
Tratamento de Exceo
Throw
Palavra reservada para gerar uma nova excesso.
Sintaxe
throw new Tipo (Texto);
Ex:
throw new exception (Este o erro Tratado.);
Eduardo Henrique
34
Tratamento de Exceo
Ex:
try { SqlConnection conn = new SqlConnection(StringConexao); conn.Open(); SqlCommand comm = new SqlCommand(InstrucaoSql); comm.ExecuteNonQuery(); } catch (SqlException ex) { // lblErro um componente Label throw new Exception(Erro ao conectar com o banco de dados); } finaly { conn.Close(); }
Eduardo Henrique
35
Escopo e Acessibilidade
PALAVRA
public
SIGNIFICADO
Sem restrines de acesso.
private
static internal protected
protected internal Limitado classe em que est contido, bem como aos tipos derivados da classe, ou membros do mesmo programa.
virtual
override partial
NameSpace
Definio
Agrupamento lgico de classes.
Sintaxe
namespace Identificador_NameSpace { // Implementao de classe(s) }
Eduardo Henrique
37
NameSpace
Estrutura interna
O .Net Framework j possui alguns namespaces para facilitar o uso da ferramenta em implementaes de solues. Ver figura do prximo slide.
Eduardo Henrique
38
System
System.Security
System.Runtime. InteropServices
System.Globalization
System.Net
System.Text
System.Reflection
System.Threading
System.Configuration
System.IO
System.Diagnostics
System.Collections
Eduardo Henrique
39
System
Toda estrutura de classes, structs, interface e outros componentes esto contidos no namespace System. System o namespace principal. Todos os demais herdam do System.
Eduardo Henrique
40
Referencias Bibliogrficas
Sites
www.msdnbrasil.com.br www.juliobattisti.com.br www.bufaloinfo.com.br
Livros
Mesbah Ahmed, Chris Garret, Jeremy Faircloth. ASP.NET Guia do Desenvolvedor Web. Editora Alta Books
Eduardo Henrique
41