Core foundation - Módulo 1Pré-requisitos:•Conhecimento da estrutura do .NET Framework•Visual Studio 2005+ instaladoConteúd...
Microsoft .NET C#                                          I)     Descrição da linguagem                                  ...
   A linguagem C# (lê-se Csharp) é muito similar a Java e a outras    linguagens.   Poderíamos dizer que a similaridade ...
   Programação baseada em componentes     Propriedades     Eventos   Delegates   Indexers   Sobrecarga de operador ...
Microsoft .NET C#                                       I)     Descrição da linguagem                                     ...
 Em C#, uma aplicação é um conjunto de uma  ou mais classes, estruturas de dados e outros  tipos. Para ínicio do entendi...
ProgramaArquivo1.cs              Namespace ZAquivo2.cs              Classe X                 Classe Y                     ...
   Se um namespace não for especificado é assumido pelo    framework um ns anônimo    Namespaces podem conter, além de c...
using System; class Hello {    static void Main()    {       Console.WriteLine("Hello World");       Console.Read();    } ...
Programa com dois arquivos sem e com referência a DLL  class Contador{                      using System;  int valor = 0; ...
Microsoft .NET C#                                                       I)     Descrição da linguagem                     ...
No .NET os tipos de dados são dividos da seguinte maneira:Todos os tipos herdam de System.Object.                         ...
Por Valor                   Por referênciaVariáveis contém             Valor                        Referência (ponteiro)A...
14
15
Enumerados são tipos por valor, são na verdade inteiros. São  símbolos que possuem valores fixo e servem principalmente pa...
17
Microsoft .NET C#                                     I)     Descrição da linguagem                                     II...
If.{....} else if{....} else.....int i = 10;if( i % 2 == 0)   Console.WriteLine(“Número Par”);else Console.WriteLine(“Núme...
Switch(X){....case..break...}SexoEnum sexo = GetSexo();        switch (sexo)        {          case SexoEnum.Masculino:   ...
Segue o mesmo estilo das linguagens JAVA, C e C++:using System;                                          //Loop infinitopu...
Este tipo de laço é utilzado para varrer arrays ou coleções. Não precisa de uma condição booleana paraparar o laço. Não pr...
Este tipo de laço é utilizado quando queremos que um bloco de código seja executado pelo menos umavez.     using System;  ...
Este tipo de laço é utilizado quando não sabemos o número de vezes que devemos executar um blocode código, mas apenas a co...
O comando BREAK é utilizado para abandonar o laço, ou seja, interrompe imediamente a sua execução.O comando CONTINUE é uti...
//GOTO CASEusing System;public class Program{   static void Main()       {        int x = 3;        switch (x)        {   ...
using System;public class Program{   static void Main()       {         int x = 0, y = 10, result = 0;        try        {...
Microsoft .NET C#                                          I)     Descrição da linguagem                                  ...
using System;public class Program{   static void Main()       {        int i = 2147483647; //Atribuição simples        i++...
using System;enum Cores { Azul, Vermelho, Prata }    struct Carro    {       string _modelo;       string _placa;       Co...
public interface IPessoa     {        string Falar();     }public class Pessoa : IPessoa     {        string _nome = null;...
public class Pessoa     {        string _nome = null;        DateTime _dtNasc;         public Pessoa(String Nome, DateTime...
public static void Inc(int valor)     {        valor++;     }     public static void IncRef(ref int valor)     {       val...
public static void IncOutParams(out int valor,params int[] numeros)     {        valor = 0;        foreach (int num in num...
Microsoft .NET C#                                     I)     Descrição da linguagem                                     II...
36
37
38
39
40
41
42
A palavra-chave checked é usada para controlar o estouro em operações aritméticas e conversões(overflow). Quando operações...
Microsoft .NET C#                              I)      Descrição da linguagem                              II)     Estrutu...
Arrays são objetos cuja a classe ancestral é System.Array, representa umconjunto de elementos que são acessados pelo seu í...
Arrays bidimensionais são as conhecidas matrizes, possuem linhas ecolunas.Declarando array bidimensional 2 x 3:       int[...
Arrays multidimensionais são os arrays com mais de uma dimensão, ouseja, os bidimensionais também são multidimensionais. E...
Conhecido também como Jagged Array.Declarando array de arrays:        int[][, ,] arrayDeMultiArray = new int[2][,,] { mult...
Microsoft .NET C#                          I)      Descrição da linguagem                          II)     Estrutura de um...
Boxing é o processo de conversão de tipo de valor um para o tipo de object ou paraqualquer tipo de interface implementada ...
Fontes:http://www.mundoasp.net/array-c-sharp-array-vetor-array-matriz/http://msdn.microsoft.com/en-us/library/2yd9wwz4(VS....
Upcoming SlideShare
Loading in …5
×

Fundamentos do .NET Framework - Parte 2

1,412 views

Published on

Conteúdo:
Particularidades da linguagem
Tipos de dados
Comandos (Statements)
Declaração de variáveis
Operadores
Arrays
Boxing e Unboxing

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,412
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
219
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Fundamentos do .NET Framework - Parte 2

  1. 1. Core foundation - Módulo 1Pré-requisitos:•Conhecimento da estrutura do .NET Framework•Visual Studio 2005+ instaladoConteúdo:•Particularidades da linguagem•Tipos de dados•Comandos (Statements)•Declaração de variáveis•Operadores•Arrays
  2. 2. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) ArraysI) Descrição da linguagem • Introdução a linguagem • Funcionalidades da linguagem
  3. 3.  A linguagem C# (lê-se Csharp) é muito similar a Java e a outras linguagens. Poderíamos dizer que a similaridade de C# 70% Java,10% C++, 5% Visual Basic e 15% é novo Tudo é um objeto. Linguagem fortemente tipada Compila para código intermediário Herança simples de classes, “herança” múltipla através de interfaces Orientada a Objetos Estruturação em blocos Instruções são separadas por „ ; ‟ Comentários de uma linha com: „ // ‟ Comentários de mais de uma linha entre „ /* ‟ e „ */ ‟ Documentação XML: „///‟ Case Sensitive
  4. 4.  Programação baseada em componentes  Propriedades  Eventos Delegates Indexers Sobrecarga de operador Foreach Boxing/Unboxing Attributes Generics Reflection Remoting ....
  5. 5. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) ArraysII) Estrutura de um programa C# •Definição • Diagrama conceitual • Exemplo Hello World •Compilando um programa complexo
  6. 6.  Em C#, uma aplicação é um conjunto de uma ou mais classes, estruturas de dados e outros tipos. Para ínicio do entendimeto, definiremos Classe como sendo um conjunto de dados combinado com métodos (ou funções) que podem manipular dados. 6
  7. 7. ProgramaArquivo1.cs Namespace ZAquivo2.cs Classe X Classe Y Int DoIt(); static void Main(){}; Int UndoIt();ArquivoN.cs
  8. 8.  Se um namespace não for especificado é assumido pelo framework um ns anônimo Namespaces podem conter, além de classes, structs, interfaces, delegates e enums. Namespaces pode ser “reabertos” em outros arquivos Caso mais simples => uma única classe, único arquivo e default namespace ( Exemplo do Hello World ). 8
  9. 9. using System; class Hello { static void Main() { Console.WriteLine("Hello World"); Console.Read(); } }Assim como no C,C++ e no Java, é necessário ter o método MAIN semou com argumentos para que o programa seja iniciado.Compilação para console:csc HeloWorld.csExecução:HelloWorld
  10. 10. Programa com dois arquivos sem e com referência a DLL class Contador{ using System; int valor = 0; class Programa public void Add(int x) { { static void Main() valor = valor + x; { } Contador c = new Contador(); Console.WriteLine("Antes : valor = " + c.Valor()); public int Valor() c.Add(3); { c.Add(5); return valor; Console.WriteLine("Depois : valor = " + c.Valor()); } Console.Read(); } } }Compilando os dois arquivos :Csc Contador.cs Programa.cs => Gera Programa.exeCompilando os dois arquivos com referência a DLL :Csc /target:library Contador.cs => Gera Contador.DLLCsc /reference:Contador.dll Programa.cs => Gerar Programa.exe
  11. 11. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) ArraysIII) Tipos de dados •Tipos de dados por valor e por referência •Tipos de dados por valor definidos pelo usuário •Enumerados •Compatibilidade entre tipos
  12. 12. No .NET os tipos de dados são dividos da seguinte maneira:Todos os tipos herdam de System.Object. 12
  13. 13. Por Valor Por referênciaVariáveis contém Valor Referência (ponteiro)Armazenados na Stack HeapNa atribuição Copia o valor Copia a referênciaExemplo Int i = 20; String s1 = “Julian”; Int j = i; String s2 = s1; i 20 s1 j 20 s2 julianLink interessante: http://www.maxi-pedia.com/what+is+heap+and+stack 13
  14. 14. 14
  15. 15. 15
  16. 16. Enumerados são tipos por valor, são na verdade inteiros. São símbolos que possuem valores fixo e servem principalmente para facilitar a codificação. Public enum Sexo {enum Titles : int Masculino = 10, { Feminino = 20 Mr, } Ms, Mrs, Dr}; 16
  17. 17. 17
  18. 18. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) ArraysIV) Comandos ( Statements ) •Comandos de seleção •Comandos de iteração ( laços) •Comandos de salto •Comandos de captura
  19. 19. If.{....} else if{....} else.....int i = 10;if( i % 2 == 0) Console.WriteLine(“Número Par”);else Console.WriteLine(“Número Impar”);//Utilizando operador ternárioint i = 10;Console.WriteLine(i % 2 == 0 ? “Número Par” : “Número Impar”); 19
  20. 20. Switch(X){....case..break...}SexoEnum sexo = GetSexo(); switch (sexo) { case SexoEnum.Masculino: Console.WriteLine("Homem"); break; case SexoEnum.Feminino: Console.WriteLine("Mulher"); break; default: Console.WriteLine("Não poderia ter chegado aqui"); throw new ApplicationException("Erro fatal"); break; } 20
  21. 21. Segue o mesmo estilo das linguagens JAVA, C e C++:using System; //Loop infinitopublic class Program{ using System; static void Main() { public class Program{ for( int i = 0; i < 5; i++) static void Main() { { Console.WriteLine(“Iteração : {0}”,i); for(;;) } { Console.Read(); string input = Console.ReadLine(); } if(input.ToUpper()Equals(“EXIT”)) break; } Console.Read(); } 21
  22. 22. Este tipo de laço é utilzado para varrer arrays ou coleções. Não precisa de uma condição booleana paraparar o laço. Não precisa inicializar variáveis. Não precisamos nos preocupar com a forma de extraçãodo conteúdo. using System; using System.Collections.Specialized; public class Program{ static void Main() { String[] nomes = new String[] { "Julian", "Maria", "Joao", "Bruno" }; foreach (String nome in nomes) { Console.WriteLine(nome); } Console.ReadKey(); } } 22
  23. 23. Este tipo de laço é utilizado quando queremos que um bloco de código seja executado pelo menos umavez. using System; public class Program{ static void Main() { int i = 45; do { Console.WriteLine(i); i++; } while (i<50); Console.ReadKey(); } } 23
  24. 24. Este tipo de laço é utilizado quando não sabemos o número de vezes que devemos executar um blocode código, mas apenas a condição que deve ser satisfeita para executar o bloco no corpo do while. using System; public class Program{ static void Main() { int i = 45; while (i < 50) { Console.WriteLine(i); i++; } Console.ReadKey(); } } 24
  25. 25. O comando BREAK é utilizado para abandonar o laço, ou seja, interrompe imediamente a sua execução.O comando CONTINUE é utilizado para passar para o próxima iteração do loop. //BREAK //CONTINUE using System; using System; public class Program{ public class Program{ static void Main() static void Main() { { int i = 45; int i = 40; while (i < 50) while (i < 50) { { Console.WriteLine(i); i++; i++; if (i % 3 == 0) if (i % 3 == 0) continue; break; Console.WriteLine(i); } Console.ReadKey(); } } Console.ReadKey(); } } } 25
  26. 26. //GOTO CASEusing System;public class Program{ static void Main() { int x = 3; switch (x) { case 1: Console.WriteLine("Case 1"); break; case 2: Console.WriteLine("Case 2"); break; case 3: goto case 2; } }} 26
  27. 27. using System;public class Program{ static void Main() { int x = 0, y = 10, result = 0; try { result = y / x; } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadKey(); }} 27
  28. 28. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) ArraysV) Declaração de variáveis •Declaração de tipos primitivos •Declaração de structs •Declaração de classes e interfaces •Declaração de métodos
  29. 29. using System;public class Program{ static void Main() { int i = 2147483647; //Atribuição simples i++; //Retorna -2147483648 uint p = 4294967295; double y = 10.5, z = 5.1, u = 560.698; //Atribuição simpes de várias variáveis char c1, c2, c3; c1 = c2 = c3 = J; //Atribuição múltipla DateTime hoje; hoje = DateTime.Today; ushort h = 65535; short k = 65535; //Erro float f = 3.40282332F; double d = 3.402823F; decimal dec = 3.402823M; }} 29
  30. 30. using System;enum Cores { Azul, Vermelho, Prata } struct Carro { string _modelo; string _placa; Cores _cor; public Carro(string modelo,string placa,Cores cor) { _modelo = modelo; _placa = placa; _cor = cor; } public override string ToString() { return String.Format(" Carro : {0} | Placa : {1} | Cor : {2}",_modelo, _placa, _cor); } public class Program{ } static void Main() { Console.WriteLine("Exemplo Structs:"); Carro c = new Carro("Palio","HSG4015",Cores.Prata); Console.WriteLine(c); //Imprime //Carro : Palio | Placa : HSG4015 | Cor : Prata Console.ReadKey(); } } 30
  31. 31. public interface IPessoa { string Falar(); }public class Pessoa : IPessoa { string _nome = null; DateTime _dtNasc; public Pessoa(String Nome, DateTime DataNascimento) { _nome = Nome; _dtNasc = DataNascimento; } #region IPessoa Members public string Falar() { public class Program{ return "Eu sou o " + _nome; } static void Main() { #endregion Pessoa p1 = new Pessoa("Julian", DateTime.Parse("19/09/1986")); } IPessoa p2 = new Pessoa("Joao",DateTime.Today); Console.WriteLine(p1.Falar()); Console.WriteLine(p2.Falar()); Console.ReadKey(); } } 31
  32. 32. public class Pessoa { string _nome = null; DateTime _dtNasc; public Pessoa(String Nome, DateTime DataNascimento) { _nome = Nome; _dtNasc = DataNascimento; }public int GetIdade() { int idade = DateTime.Today.Year - _dtNasc.Year; if (DateTime.Today.Day < _dtNasc.Day && DateTime.Today.Month <= _dtNasc.Month) idade--; return idade; } } public class Program{ static void Main() { Pessoa p1 = new Pessoa("Julian", DateTime.Parse("19/09/1986")); Pessoa p2 = new Pessoa("Joao", DateTime.Today); Console.WriteLine(p1.GetIdade()); Console.WriteLine(p2.GetIdade()); Console.ReadKey(); } } 32
  33. 33. public static void Inc(int valor) { valor++; } public static void IncRef(ref int valor) { valor++; } public static void IncOut(out int valor) { valor = 10; } public class Program{ static void Main() { int valor = 5; Inc(valor); Console.WriteLine(valor);// Imprime "5" IncRef(ref valor); Console.WriteLine(valor);// Imprime "6" IncOut(out valor); Console.WriteLine(valor);// Imprime "10" Console.ReadKey(); } } 33
  34. 34. public static void IncOutParams(out int valor,params int[] numeros) { valor = 0; foreach (int num in numeros) valor += num; } public class Program{ static void Main() { Console.WriteLine("Exemplo Parameters Methods Params:"); int valor = 0; IncOutParams(out valor,40,60,50,25,10,15); Console.WriteLine(valor); //Imprime 200 Console.ReadKey(); } } 34
  35. 35. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) ArraysVI) Operadores •Operadores Aritméticos •Operadores Unários •Operadores Lógicos •Operadores Condicionais •Operadores Relacionais •Operadores de Igualdade •Operadores de Atribuição •Operadores Checked e Unchecked
  36. 36. 36
  37. 37. 37
  38. 38. 38
  39. 39. 39
  40. 40. 40
  41. 41. 41
  42. 42. 42
  43. 43. A palavra-chave checked é usada para controlar o estouro em operações aritméticas e conversões(overflow). Quando operações com constantes resultam em overflow, o próprio compilador acusa oerro. Quando os valores são calculados em runtime, devemos pensar em utilizar estes operadores.A unchecked faz o contrário, não controla o estouro. Este contexto é padrão e nele o resultado étruncado os bits de maior ordem que não se enquadram no tipo de destino.Sintaxe: class Test {//checked-expression: static readonly int x = 1000000; checked ( expression ) static readonly int y = 1000000;//unchecked-expression: static int F() { unchecked ( expression ) return checked(x * y); // Throws OverflowExcept } static int G() { return unchecked(x * y); // Returns -727379968 } static int H() { return x * y; // Depends on default } } 43
  44. 44. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) Arrays VIII) Boxing e UnboxingVII) Arrays •Array Unidimensional •Array Bidimensional •Array MultiDimensional •Array de arrays
  45. 45. Arrays são objetos cuja a classe ancestral é System.Array, representa umconjunto de elementos que são acessados pelo seu índice no aray.Emoutras palavras, podemos dizer que são cadeias de objetos, algunsconhecem como vetor ou matriz unidimensional.Declarando array unidimensional: int[] arrayInt1 = new int[2]; int[] arrayInt2 = new int[2] { 10, 20 }; int[] arrayInt3 = new int[] { 10, 20 }; int[] arrayInt4 = { 10, 20 }; Exemplo matriz unidimensional: 45
  46. 46. Arrays bidimensionais são as conhecidas matrizes, possuem linhas ecolunas.Declarando array bidimensional 2 x 3: int[,] matrizInt1 = new int[2, 3]; int[,] matrizInt2 = new int[2, 3] { { 10, 20, 30 }, { 70, 80, 90 } }; int[,] matrizInt3 = { { 10, 20, 30 }, { 70, 80, 90 } }; Exemplo matriz 4x4: 46
  47. 47. Arrays multidimensionais são os arrays com mais de uma dimensão, ouseja, os bidimensionais também são multidimensionais. Entretanto seráexplicado aqui o array de três dimensões.Declarando array bidimensional 4 x 2 x 3:int[, ,] multiArray = new int[4, 2, 3]; Exemplo array 4x2x3: 47
  48. 48. Conhecido também como Jagged Array.Declarando array de arrays: int[][, ,] arrayDeMultiArray = new int[2][,,] { multiArray,multiArray}; int value = arrayDeMultiArray[0][0, 0, 0]; int[][,] arrayDeBiArray = new int[2][,] { matrizInt1, new int[2, 2] { { 2, 4 }, { 5, 3 } } }; value = arrayDeBiArray[0][1, 0]; int[][] arrayDeArray = new int[2][] { arrayInt1, arrayInt2 }; value = arrayDeArray[0][1]; Exemplo array 4x2x3: 48
  49. 49. Microsoft .NET C# I) Descrição da linguagem II) Estrutura de um programa C# III) Tipos de dados IV) Comandos V) Declarações de variáveis VI) Operadores VII) Arrays VIII) Boxing e UnboxingVIII) Boxing e Unboxing
  50. 50. Boxing é o processo de conversão de tipo de valor um para o tipo de object ou paraqualquer tipo de interface implementada por este tipo de valor.Unboxing extrai o tipo de valor do objeto. int i = 123; object o = (object)i; // boxing o = 123; i = (int)o; // unboxing 50
  51. 51. Fontes:http://www.mundoasp.net/array-c-sharp-array-vetor-array-matriz/http://msdn.microsoft.com/en-us/library/2yd9wwz4(VS.71).aspxhttp://www.maxi-pedia.com/what+is+heap+and+stack

×