Your SlideShare is downloading. ×
  • Like
Introdução a linguagem C# (CSharp)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introdução a linguagem C# (CSharp)

  • 2,626 views
Published

Essa apresentação é uma introdução ao aprendizado da linguagem C# (CSharp).

Essa apresentação é uma introdução ao aprendizado da linguagem C# (CSharp).

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • hey visit me : http://comtam.web10s.com/gioi-thieu-ve-com-tam-ngon-binh-duong/
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
2,626
On SlideShare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
189
Comments
1
Likes
8

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. INTRODUÇÃO A LINGUAGEM C# Marcos Castro
  • 2. Objetivo    O objetivo dessa apresentação é proporcionar uma noção básica da linguagem C#. Para um melhor entendimento, é recomendável que o leitor tenha uma noção de lógica de programação ou que já tenha programado em alguma outra linguagem. Essa apresentação tem como intuito ajudar quem está começando ou quer começar a programar em C#.
  • 3. Introdução     C# foi desenvolvida pela Microsoft. Foi apresentada junto a plataforma .NET. C# é uma mistura de C++ e Java. Criador: Anders Hejlsberg
  • 4. Características     É orientada a objetos. Possui um alto nível de abstração. Possui coletor de lixo. Suporta tipagem dinâmica e estática. A tipagem dinâmica não exige declarações de tipos de dados (a partir da versão 3.0 do C#).  A tipagem estática exige a declaração de quais dados poderão ser associados a cada variável antes da sua utilização.
  • 5. Características  C# está bastante vinculada ao framework .NET O framework .NET suporta várias linguagens de programação.  C# usa a biblioteca de classe do framework .NET O framework .NET possui mais de 4 mil classes.
  • 6. Ambiente de desenvolvimento   Irei utilizar o Windows 7 Visual C# 2010 Express (gratuito)  http://www.visualstudio.com/downloads/download -visual-studio-vs  Se você for aluno, poderá fazer download de versões pagas do Visual Studio acessando o site:  https://www.dreamspark.com
  • 7. Primeiros passos  Primeiramente crie um projeto (File -> New Project)
  • 8. Primeiros passos  Tecle F6 para construir a aplicação e depois tecle a combinação Ctrl + F5 para executar.
  • 9. Explicação  Ctrl + F5 no Visual C# executa sem debugging. Isso força uma pausa no final da execução permitindo que você possa visualizar o resultado da execução.  Já o atalho F6 é o mesmo que ir no menu Debug e depois clicar em “Build Solution”.
  • 10. Explicação  As classes são organizadas em namespaces. System é um namespace.
  • 11. Explicação  Console é uma classe do namespace System.
  • 12. Explicação   Declarar seus próprios namespaces pode ajudar no controle do escopo da classe e nomes de métodos em grandes projetos. Os namespaces ajudam na manutenção de um programa!
  • 13. Explicação  Quando você criou um projeto em C# utilizando o Visual C#, ele já adicionou:  Você faz referência a um namespace utilizando a palavra reservada “using”.
  • 14. Explicação  WriteLine é um método da classe Console. É passada a string “Hello World!”.
  • 15. Observações    C# é case-sensitive, ou seja, diferencia letras minúsculas de maiúsculas. Com o “//” é possível fazer comentários de uma linha. Começando com “/*” e fechando com “*/” é possível fazer comentários de múltiplas linhas.
  • 16. Executando sem Visual C#    Uma IDE como Visual C# é muito importante para otimizar seu tempo pois tem uma série de recursos interessantes. Mas você pode executar um código sem o Visual C#. Para executar, basta ter o framework .NET instalado.
  • 17. Executando sem Visual C#    Como saber se eu tenho o framework .NET? Abra o Windows Explorer. Se o Windows estiver instalado na partição C, clique nela, entre na pasta Windows, depois entre na pasta Microsoft.NET, entre na pasta Framework. Dentro dessa pasta você encontrará as versões do framework. Irei utilizar a versão 3.5, então eu clicarei na pasta chamada v3.5.
  • 18. Executando sem Visual C#  Procure pelo arquivo “csc.exe”. É esse arquivo que compilará o programa.
  • 19. Executando sem Visual C#   Não irei adicionar nas variáveis de ambiente. Irei chamar diretamente o “csc.exe” digitando o endereço completo dele. No meu caso o endereço ficou:  C:WindowsMicrosoft.NETFrameworkv3.5csc.e xe
  • 20. Executando sem Visual C#   Abra algum editor de sua preferência. Irei utilizar o Notepad++. Digite o seguinte código: Salve o arquivo como “HelloWorld.cs”.
  • 21. Executando sem Visual C#    Eu salvei o arquivo “HelloWorld.cs” na Área de Trabalho. Abra o cmd (prompt de comandos). Digite os seguintes comandos:  cd desktop  C:WindowsMicrosoft.NETFrameworkv3.5csc.e xe HelloWorld.cs  HelloWorld.exe
  • 22. Executando sem Visual C#
  • 23. Executando sem Visual C#  Fácil não é mesmo? Mas o Visual C# já faz isso para você de forma bem mais simples!
  • 24. Obtendo dados do usuário  Veja esse código que obtém dados do usuário:  O método ReadLine() obtém os dados.
  • 25. Obtendo dados do usuário  O operador “+” concatena strings.
  • 26. Execução
  • 27. Atenção    Nos próximos exemplos não irei colocar o namespace. Lembrando que é recomendável definir o namespace. Irei apresentar exemplos sem namespace, apenas com a classe.
  • 28. Retornando o tipo de uma variável  Programa que retorna o tipo de uma variável  Basta utilizar a função GetType().
  • 29. Execução  System.Single ?? Isso mesmo, float é um apelido para System.Single. Cada tipo em C# tem o apelido para o tipo .NET.
  • 30. Convertendo string para inteiro  Convertendo string para inteiro (int):  Basta utilizar a função Parse().
  • 31. Exibindo várias variáveis  Exibindo várias variáveis:  Basta usar {0}, {1} etc. e especificar as variáveis.
  • 32. Tipagem implícita     Nos exemplos anteriores sempre declaramos o tipo da variável antes de utilizá-la. A partir da versão 3.0, pode-se utilizar o conceito de tipagem implícita. Tipagem implícita: não é necessário informar o tipo da variável. Com a tipagem implícita, o tipo da variável é definido de acordo com o valor atribuído a ela.
  • 33. Tipagem implícita - Exemplo   Veja um exemplo com tipagem implícita: Perceba que eu tenho a variável “ano” que é inteira e a variável “nome” que é uma string.
  • 34. Execução
  • 35. Obtendo uma substring  Para obter uma substring, basta utilizar o método Substring().
  • 36. Obtendo uma substring  Substring() : o primeiro parâmetro é o índice de onde começa e o segundo é a quantidade de caracteres.
  • 37. Execução
  • 38. Tamanho de uma string  Basta utilizar o atributo Length para saber o tamanho de uma string.
  • 39. Método Contains()  Verifica se uma string está contida na outra. Retorna True se for verdade e False caso contrário. A saída do programa será True.
  • 40. Concatenando strings  Basta utilizar o método Concat() da classe String.
  • 41. Retirando caracteres em branco  Para retirar do final basta utilizar o método TrimEnd() e para retirar do início basta utilizar o método TrimStart().
  • 42. Dividir uma string  Para dividir uma string, pode-se utilizar o método Split() passando o separador que será usado para dividir a string.
  • 43. Dividir uma string  vet é um vetor de strings. A string nome é dividida por um espaço em branco através do método Split.
  • 44. Dividir uma string  O comando for é um comando de repetição que irá percorrer o array vet para exibir as strings.
  • 45. Execução
  • 46. Juntando strings  Para juntar, pode-se utilizar o método Join().
  • 47. Declarando constantes  Basta usar a palavra reservada “const”antes do tipo da variável.  Na declaração de uma constante, é obrigatório atribuir um valor a ela no momento da declaração.
  • 48. Métodos   C# não suporta métodos globais. Os métodos são declarados e utilizados de forma semelhante a outras linguagens como C, C++ e Java.
  • 49. Métodos - Exemplo  Método somar() retorna a soma de dois números.
  • 50. Métodos - Outra forma  Método somar() agora não é estático (static).
  • 51. Expressões condicionais  No C# você poderá utilizar as expressões:  if  switch  Exemplo com o if:
  • 52. Expressões condicionais  Exemplo com switch:
  • 53. Expressões condicionais  O switch pode ser utilizado com strings!
  • 54. Observações sobre o switch   Só pode ser utilizado com os tipos primitivos. Cada case contém uma expressão única.
  • 55. Laços (loops)  C# possui os seguintes laços (loops):  do-while  for  while  foreach-in
  • 56. Laços (loops) - do-while  Segue um exemplo utilizando o do-while que soma os 10 primeiros números naturais não nulos:
  • 57. Laços (loops) - Exemplo for  Segue um exemplo utilizando o for que soma os 10 primeiros números naturais não nulos:
  • 58. Laços (loops) - Exemplo while  Segue um exemplo utilizando o while que soma os 10 primeiros números naturais não nulos:
  • 59. Laços (loops) - foreach-in  Veja um exemplo usando o foreach-in:  Esse exemplo imprime os números 1, 2 e 3.
  • 60. Tratamento de erros - try-catch  Veja como capturar execução utilizando o bloco try-catch (exceção: divisão por zero):
  • 61. Tratamento de erros - try-catch  Outra forma de fazer a mesma coisa:
  • 62. Tratamento de erros - finally  O finally é sempre executado.
  • 63. Classe de exceção customizada  Veja uma classe de exceção criada, ela herda de Exception.  Lembre-se de criá-la no mesmo namespace, senão você terá que fazer referência a outro namespace.
  • 64. Classe de exceção customizada  Utilizando a classe:  Veja que foi lançada a exceção com throw new.
  • 65. Execução
  • 66. Criando arrays (vetores)  Os vetores são arrays unidimensionais, eles guardam elementos de um mesmo tipo.
  • 67. Criando arrays (vetores)  Essa é uma das formas de criar um vetor, no caso foi criado um vetor de inteiros cujo tamanho é 10.
  • 68. Criando arrays (vetores)  São armazenados 10 números inteiros (de 0 a 9) e depois esses números são mostrados no console.
  • 69. Ordenar um array  Veja como ordenar um array de inteiros:  Primeiramente o array é preenchido com os números: 4, 3, 2 e 1 (nessa ordem).
  • 70. Ordenar um array  Logo após é chamado o método Sort() para ordenar o array crescentemente. Por último é mostrado o array. Saída: 1, 2, 3, 4.
  • 71. Matrizes  Veja como é simples declarar matrizes:  Foi criada uma matriz 2x2.
  • 72. Matrizes  Essa matriz foi preenchida com os valores 1, 2, 3, 4. Logo após temos 2 for para mostrar os elementos.
  • 73. Matrizes  Outra forma de resolver o problema:  Veja que a declaração. matriz foi inicializada na
  • 74. Método GetValue()  Você pode pegar os elementos de um array utilizando o método GetValue(), basta passar a posição do elemento, veja:
  • 75. Enum   Enum são listas de valores constantes. Foi criada a enum “mes” que possui os valores: janeiro, fevereiro e dezembro.
  • 76. Execução  O valor de janeiro é 0, o valor de fevereiro é 1 e o valor de dezembro é 2.
  • 77. Criando classes  Veja o exemplo da criação de uma classe:
  • 78. Criando classes  Veja a classe que usa a classe Pessoa:
  • 79. Métodos  O C# permite métodos com nomes iguais, mas parâmetros diferentes, veja:
  • 80. Observação  Você percebeu que a maioria dos nossos métodos são estáticos, ou seja, tem a palavra “static” antes do tipo de retorno ? Pois bem, isso acontece porque são métodos chamados no método main e esse por sua vez é estático, obrigando os métodos que são chamados também serem estáticos.
  • 81. Parâmetros opcionais  O C# permite parâmetros opcionais. Parâmetros opcionais são parâmetros que tem um valor pré-definido caso não seja passado um valor para ele.
  • 82. Parâmetros opcionais  Perceba que não foi passado parâmetro algum para a função setNome(). Mas na lista de parâmetros dela tem dizendo que nome recebe a string “Sem nome” caso não seja passado parâmetro.
  • 83. Herança   Herança é um princípio de orientação a objetos, que permite que classes compartilhem atributos e métodos. O C# não permite herança múltipla, ou seja, cada classe só pode ter um pai.
  • 84. Herança - Exemplo  Veja a classe pai chamada Carro:
  • 85. Herança - Exemplo  Agora veja a classe filha chamada Camaro. Ela herda métodos e atributos da classe Carro.
  • 86. Herança - Exemplo  Por último, a classe que utiliza as classes criadas anteriormente:
  • 87. Observação  Qualquer classe no C# deriva direta ou indiretamente da classe Object, ou seja, a classe Object é classe pai de todas as classes.
  • 88. Sobrescrevendo métodos  É preciso dizer que o método da classe pai que você quer sobrescrever é virtual.
  • 89. Sobrescrevendo métodos  Na classe filha, é preciso utilizar a palavra “override” para sobrescrever o método.
  • 90. Sobrescrevendo métodos
  • 91. Palavra reservada “base”  A palavra reservada “base” faz referência aos métodos e atributos da classe pai. Veja:
  • 92. Polimorfismo    O polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes que referenciam. Iremos construir uma classe abstrata. Classe abstrata é aquela classe que não pode ser instanciada. Para declarar uma classe como abstrata basta utilizar a palavra “abstract” antes de “class”.
  • 93. Polimorfismo  A classe Operacao é nossa classe abstrata, ela contém um método abstrato chamado “calcular”. Esse método precisa ser implementado pelas classes filhas da classe Operacao.
  • 94. Polimorfismo  A primeira classe filha da classe Operacao é a classe Soma, ela implementa o método “calcular” sobrescrevendo (override).
  • 95. Polimorfismo  A segunda classe filha da classe Operacao é a classe Subtracao, ela implementa o método “calcular” sobrescrevendo (override).
  • 96. Polimorfismo  Perceba que a classe Soma implementa o método calcular de um jeito e a classe Subtracao implementa de outro.
  • 97. Polimorfismo  Segue a classe que contém o método principal:
  • 98. Execução
  • 99. Observação  Métodos abstratos só possuem assinatura, não possuem corpo (implementação).
  • 100. Classe final   Uma classe final é uma classe que não pode ser herdada. Para declarar uma classe como final, basta utilizar a palavra “sealed” antes de “class”.
  • 101. Criando interfaces   Interface é um recurso da orientação a objetos que define ações que devem ser obrigatoriamente executadas. Uma classe pode implementar várias interfaces.
  • 102. Criando interfaces   Primeiramente temos uma interface chamada Entidade. Basta usar a palavra “interface” antes do nome. Veja que os métodos não possuem implementação.
  • 103. Criando interfaces  A classe Pessoa implementa os métodos da interface Entidade.
  • 104. Criando interfaces  Os métodos implementados na classe Pessoa tem que ser public.
  • 105. Criando interfaces  Testando a aplicação:
  • 106. Estruturas (struct)     A diferença entre estruturas e classes é que as estruturas não são alocadas na memória heap. As estruturas não suportam herança, implementam interfaces e cada variável do tipo struct contém uma cópia dos seus valores. Estruturas são tipos valor. Estruturas podem possuir construtores, mas não podem possuir destrutores.
  • 107. Estruturas (struct)  Veja um exemplo utilizando estrutura:
  • 108. Criando uma lista com List  Veja como é fácil criar uma lista usando List:
  • 109. Contato  Quaisquer dúvidas, sugestões ou críticas é só entrar em contato: www.about.me/mcastrosouza www.slideshare.net/mcastrosouza www.geeksbr.com mcastosouza@live.com