1 / 344

Curso de C#

Curso de C#. Quem sou eu - Original. Formado em processamento de dados pela UNIFIEO Coordenador da equipe de desenvolvimento da MSPi do Brasil Softwares de Gestão S/A Microsoft Certified Professional em ASP.NET Co-líder da célula acadêmica TouchAndTouch.NET Palestrante Microsoft .NET.

beth
Download Presentation

Curso de C#

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Curso de C#

  2. Quem sou eu - Original • Formado em processamento de dados pela UNIFIEO • Coordenador da equipe de desenvolvimento da MSPi do Brasil Softwares de Gestão S/A • Microsoft Certified Professional em ASP.NET • Co-líder da célula acadêmica TouchAndTouch.NET • Palestrante Microsoft .NET

  3. Quem sou eu – Heitor • Aluno da cadeira de Jogos • Mestrado Eng. De Software • Fábrica de software de jogos para dispositivos móveis • Trabalho com dispositivos móveis (2002) • PALM, Celular ... • Trabalho com jogos (2003) • Brew • J2ME • Trabalhei com C# + Asp.Net em 2004 • Apenas 3 meses :P • Aprendido “na tora[lmente]” • Ajudante de introdução do curso de XNA • A idéia é não começar o curso zerado • Gerar debate e dúvidas

  4. Agenda • Visão geral de C# • Utilizando variáveis do tipo valor • Comandos e exceções • Métodos e parâmetros • Matrizes (vetores) • Fundamentos da programação orientada a objetos • Utilizando variáveis do tipo referência • Criando e destruindo objetos • Herança em C# • Agregação, namespace e escopo avançado • Operadores, delegações e eventos • Propriedades e indexeradores • Atributos

  5. Agenda • Visão geral de C# • Utilizando variáveis do tipo valor • Comandos e exceções • Métodos e parâmetros • Matrizes (vetores) • Fundamentos da programação orientada a objetos • Utilizando variáveis do tipo referência • Criando e destruindo objetos • Herança em C# • Agregação, namespace e escopo avançado • Operadores, delegações e eventos • Propriedades e indexeradores • Atributos

  6. Visão geral de C#

  7. Entender a estrutura básica de um programa simples escrito em C# Utilizar a classe Console para operações básicas de entrada / saída Gerar a documentação em XML de um programa escrito em C# Compilar e executar um programa escrito em C# Depurar um programa escrito em C# Objetivos

  8. Case sensitive: diferencia maiúsculas de minúsculas Fortemente tipada: todas as variáveis devem ser declaradas Orientada a objetos: tudo é um objeto no .NET Framework Geralmente as linhas são terminadas com “;” O método Main Principais Características

  9. using System; class Hello { public static void Main( ) { Console.WriteLine(“Hello World”); } } Hello World

  10. Console.Write: Console.Write( “TouchAndThink.NET” ); Console.WriteLine: Console.WriteLine( “TouchAndThink.NET” ); Console.Read: char letra = Console.Read( ); Console.ReadLine: string linha = Console.ReadLine( ); Classe Console

  11. Vamos utilizar o Microsoft Visual Studio 2005 para desenvolver o programa Hello World Exercício

  12. Comentando uma única linha // Comentário várias linhas /* ... */ Documentação XML /// Tipos de Comentários

  13. using System; /// <summary> /// Este é meu primeiro programa em C# /// </summary> class Hello { /// <remarks> /// Utilizando o método WriteLine da classe Console /// <seealso cref="System.Console.WriteLine"/> /// </remarks> public static void Main( ) { Console.WriteLine( "Hello World Documentado" ); } } Documentação XML

  14. <summary>...</summary> Breve descrição <remarks>...</remarks> Descrição detalhada <seealso cref>...</ seealso> Indica uma referência para outro membro ou campo Documentação completa em: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrftagsfordocumentationcomments.asp Tags Documentação XML

  15. Através do Visual Studio: ->Menu Project -> Properties -> Build ->XML Documentation File Através da janela de comando: csc meuprograma.cs /doc:meuxml.xml Gerando Documentação XML

  16. Gerando a documentação XML de um programa escrito em C# Exercício

  17. Através do Microsoft Visual Studio: ->Menu Build -> Build Solution Através da janela de comando: csc /out:meuprograma.exe meuprograma.cs Compilando

  18. Através do Microsoft Visual Studio: -> Menu Debug -> Start Without Debugging (CTRL+F5) Através da janela de comando: Digite o nome da aplicação (.EXE) Executando

  19. Configurando “breakpoints” Right Click na linha -> Insert BreakPoint Execute um clique na margem esquerda Executando passo-a-passo ->Menu Build ->Start (F5) Examinando e modificando variáveis Através da janelas Autos e Wacth Depurando

  20. Compilar, executar e depurar um programa escrito em C# Exercício

  21. CORDBG.EXE (Runtime Debugger) Depurador de linha de comando ILASM.EXE (MSIL Assembler) Pega a MSIL e gera o executável ILDASM.EXE (MSIL Disassembler) Gera MSIL a partir de código executável Lista completa de utilitários em: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconNETFrameworkTools.asp Ferramentas SDK

  22. Utilizando o utilitário de linha de comando ILDASM para verificar código MSIL Demonstração

  23. Agenda • Visão geral de C# • Utilizando variáveis do tipo valor • Comandos e exceções • Métodos e parâmetros • Matrizes (vetores) • Fundamentos da programação orientada a objetos • Utilizando variáveis do tipo referência • Criando e destruindo objetos • Herança em C# • Agregação, namespace e escopo avançado • Operadores, delegações e eventos • Propriedades e indexeradores • Atributos

  24. Utilizando variáveis do tipo valor

  25. Entender os tipos de dados do C# Nomear variáveis Declarar variáveis Atribuir valor à variáveis Criar seus próprios tipos de dados Conversão entre tipos de dados Objetivos

  26. Parte do CLR (Commom Language RunTime) Compartilhado entre todas as linguagens .NET Tipos de variáveis: Value types Reference types Commom Type System

  27. Existem dois tipos de value types Built-in types (Simple types) int float User defined types enum struct Value Types

  28. Identificados através de palavras reservadas Essas palavras reservadas são na verdade “apelidos” para estruturas pré-definidas Exemplo: int // palavra reservada System.Int32 // struct type Simple Types

  29. Simple Types

  30. Regras: Iniciar com caracter ou underscore Depois do primeiro caracter, utilize caracteres e/ou dígitos Não utilizar palavras reservadas Recomendações: Evitar utilizar todas as letras maiúsculas Evitar iniciar com underscore Evitar utilizar abreviações Utilizar “PascalCasing” para variáveis de múltiplos nomes classes, métodos, propriedades, enums, interfaces, campos de somente leitura, constantes, namespaces e propriedades CamelCasing campos e parâmetros Nomeando variáveis

  31. Palavras reservadas em C#

  32. Identificar o tipo e o nome da variável: int num1; Você pode declarar múltiplas variáveis em uma mesma linha: int num1, num2, num3; Declarando Variáveis Locais

  33. Atribua valores à variáveis através do operador “=“ int num1; // Declarando a variável num1 = 0; // Atribuindo valor OU int num1 = 0; // Declarando a variável e já inicializando a mesma Atribuindo Valores à Variáveis

  34. Ao invés de escrever: int num1 = 0; num1 = num1 + 4; Escreva: int num1 = 0; num1 += 4; Isso funciona com todos os operadores aritméticos “Shortland”

  35. Operadores

  36. Ao invés de escrever: int num1 = 0; num1 = num1 + 1; Escreva: int num1 = 0; num1++; Isso funciona com todos os operadores “+” e “-” Incremento e Decremento

  37. Existem duas formas: num1++; ++num1; Exemplos: int numero = 10; int preresultado = ++numero; // preresulatdo =11 int posresultado = numero++; // preresulatdo =11 Incremento e Decremento

  38. As expressões são resolvidos da esquerda para direita (com exceção dos operações de igualdade) x + y + z é resolvido como ( x + y ) + z Os operadores de igualdade são resolvidos da direita para a esquerda x = y = z é resolvido como x = ( y = z ) Precedência

  39. Os operadores atitméticos *, / e % tem maior precedência do que os operadores + e – x + y * z é resolvido como x + ( y * z ) Você pode altetar a precedência através do uso de parênteses ( x + y ) * z Precedência

  40. Desenvolva um programa em C# que declara variáveis do tipo simples, atribua valores a estas variáveis e mostre seus respectivos valores na tela Exercício

  41. Definida através da palavra chave enum: enum Cor { Branca, Preta, Azul } Utilizando uma enumeração: Cor corParede = Cor.Branca; Mostrando valor de uma enumeração: // Mostra Branca Console.WriteLine( corParede ); Enumerações

  42. Definida através da palavra chave struct: public struct Pessoa { public string nome; public int idade; } Utilizando uma estrutura: Pessoa pes; // Declara a variável pes.nome = “João”; // Altera o valor pes.idade = 25; Estruturas

  43. Desenvolver um programa em C# que faça uso de enumerações e estruturas Exercício

  44. C# suporta dois tipos de conversão: Conversão implícita de dados Conversão explícita dedados Convertendo Variáveis

  45. O C# se encarrega de efetuar a conversão: int intValue = 123; long longValue = intValue; Conversões implícitas não falham: podem perder precisão, mas não magnitude Conversão Implícita

  46. Para conversões explicitas, você deve utilizar uma expressão cast: long longValue = Int64.MaxValue; int intValue = (int)longValue; Conversões explícitas podem falhar. Você pode tratar esse tipo de erro através do uso do bloco checked Conversão Explícita

  47. // Será gerada uma exceção no caso de “overflow” checked { long longValue = Int64.MaxValue; int intValue = (int)longValue; Console.WriteLine( intValue ); } // Não será gerada uma exceção no caso de “overflow” unchecked { long longValue = Int64.MaxValue; int intValue = (int)longValue; Console.WriteLine( intValue ); } checked / unchecked

  48. Desenvolver um programa em C# que faça conversão implícitas e explícitas de variáveis Exercício

  49. Agenda • Visão geral de C# • Utilizando variáveis do tipo valor • Comandos e exceções • Métodos e parâmetros • Matrizes (vetores) • Fundamentos da programação orientada a objetos • Utilizando variáveis do tipo referência • Criando e destruindo objetos • Herança em C# • Agregação, namespace e escopo avançado • Operadores, delegações e eventos • Propriedades e indexeradores • Atributos

  50. Comandos e exceções

More Related