Introdução a linguagem C# (CSharp)
-
Upload
marcos-castro -
Category
Education
-
view
3.390 -
download
6
description
Transcript of Introdução a linguagem C# (CSharp)
![Page 1: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/1.jpg)
INTRODUÇÃO A LINGUAGEM C#
Marcos Castro
![Page 2: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/2.jpg)
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#.
![Page 3: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/3.jpg)
Introdução
C# foi desenvolvida pela Microsoft. Foi apresentada junto a plataforma .NET. C# é uma mistura de C++ e Java. Criador: Anders Hejlsberg
![Page 4: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/4.jpg)
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.
![Page 5: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/5.jpg)
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.
![Page 6: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/6.jpg)
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
![Page 7: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/7.jpg)
Primeiros passos
Primeiramente crie um projeto (File -> New Project)
![Page 8: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/8.jpg)
Primeiros passos
Tecle F6 para construir a aplicação e depois tecle a combinação Ctrl + F5 para executar.
![Page 9: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/9.jpg)
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”.
![Page 10: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/10.jpg)
Explicação
As classes são organizadas em namespaces. System é um namespace.
![Page 11: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/11.jpg)
Explicação
Console é uma classe do namespace System.
![Page 12: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/12.jpg)
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!
![Page 13: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/13.jpg)
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”.
![Page 14: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/14.jpg)
Explicação
WriteLine é um método da classe Console. É passada a string “Hello World!”.
![Page 15: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/15.jpg)
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.
![Page 16: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/16.jpg)
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.
![Page 17: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/17.jpg)
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.
![Page 18: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/18.jpg)
Executando sem Visual C#
Procure pelo arquivo “csc.exe”. É esse arquivo que compilará o programa.
![Page 19: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/19.jpg)
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:\Windows\Microsoft.NET\Framework\v3.5\
csc.exe
![Page 20: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/20.jpg)
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”.
![Page 21: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/21.jpg)
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:\Windows\Microsoft.NET\Framework\v3.5\
csc.exe HelloWorld.cs HelloWorld.exe
![Page 22: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/22.jpg)
Executando sem Visual C#
![Page 23: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/23.jpg)
Executando sem Visual C#
Fácil não é mesmo? Mas o Visual C# já faz isso para você de forma bem mais simples!
![Page 24: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/24.jpg)
Obtendo dados do usuário
Veja esse código que obtém dados do usuário:
O método ReadLine() obtém os dados.
![Page 25: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/25.jpg)
Obtendo dados do usuário
O operador “+” concatena strings.
![Page 26: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/26.jpg)
Execução
![Page 27: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/27.jpg)
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.
![Page 28: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/28.jpg)
Retornando o tipo de uma variável Programa que retorna o tipo de uma
variável
Basta utilizar a função GetType().
![Page 29: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/29.jpg)
Execução
System.Single ?? Isso mesmo, float é um apelido para System.Single. Cada tipo em C# tem o apelido para o tipo .NET.
![Page 30: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/30.jpg)
Convertendo string para inteiro Convertendo string para inteiro (int):
Basta utilizar a função Parse().
![Page 31: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/31.jpg)
Exibindo várias variáveis
Exibindo várias variáveis:
Basta usar {0}, {1} etc. e especificar as variáveis.
![Page 32: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/32.jpg)
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.
![Page 33: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/33.jpg)
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.
![Page 34: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/34.jpg)
Execução
![Page 35: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/35.jpg)
Obtendo uma substring
Para obter uma substring, basta utilizar o método Substring().
![Page 36: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/36.jpg)
Obtendo uma substring
Substring() : o primeiro parâmetro é o índice de onde começa e o segundo é a quantidade de caracteres.
![Page 37: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/37.jpg)
Execução
![Page 38: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/38.jpg)
Tamanho de uma string
Basta utilizar o atributo Length para saber o tamanho de uma string.
![Page 39: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/39.jpg)
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.
![Page 40: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/40.jpg)
Concatenando strings
Basta utilizar o método Concat() da classe String.
![Page 41: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/41.jpg)
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().
![Page 42: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/42.jpg)
Dividir uma string
Para dividir uma string, pode-se utilizar o método Split() passando o separador que será usado para dividir a string.
![Page 43: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/43.jpg)
Dividir uma string
vet é um vetor de strings. A string nome é dividida por um espaço em branco através do método Split.
![Page 44: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/44.jpg)
Dividir uma string
O comando for é um comando de repetição que irá percorrer o array vet para exibir as strings.
![Page 45: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/45.jpg)
Execução
![Page 46: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/46.jpg)
Juntando strings
Para juntar, pode-se utilizar o método Join().
![Page 47: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/47.jpg)
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.
![Page 48: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/48.jpg)
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.
![Page 49: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/49.jpg)
Métodos - Exemplo
Método somar() retorna a soma de dois números.
![Page 50: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/50.jpg)
Métodos - Outra forma
Método somar() agora não é estático (static).
![Page 51: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/51.jpg)
Expressões condicionais
No C# você poderá utilizar as expressões: if switch
Exemplo com o if:
![Page 52: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/52.jpg)
Expressões condicionais
Exemplo com switch:
![Page 53: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/53.jpg)
Expressões condicionais
O switch pode ser utilizado com strings!
![Page 54: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/54.jpg)
Observações sobre o switch
Só pode ser utilizado com os tipos primitivos.
Cada case contém uma expressão única.
![Page 55: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/55.jpg)
Laços (loops)
C# possui os seguintes laços (loops): do-while for while foreach-in
![Page 56: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/56.jpg)
Laços (loops) - do-while
Segue um exemplo utilizando o do-while que soma os 10 primeiros números naturais não nulos:
![Page 57: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/57.jpg)
Laços (loops) - Exemplo for
Segue um exemplo utilizando o for que soma os 10 primeiros números naturais não nulos:
![Page 58: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/58.jpg)
Laços (loops) - Exemplo while Segue um exemplo utilizando o while
que soma os 10 primeiros números naturais não nulos:
![Page 59: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/59.jpg)
Laços (loops) - foreach-in
Veja um exemplo usando o foreach-in:
Esse exemplo imprime os números 1, 2 e 3.
![Page 60: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/60.jpg)
Tratamento de erros - try-catch Veja como capturar execução utilizando
o bloco try-catch (exceção: divisão por zero):
![Page 61: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/61.jpg)
Tratamento de erros - try-catch Outra forma de fazer a mesma coisa:
![Page 62: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/62.jpg)
Tratamento de erros - finally
O finally é sempre executado.
![Page 63: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/63.jpg)
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.
![Page 64: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/64.jpg)
Classe de exceção customizada Utilizando a classe:
Veja que foi lançada a exceção com throw new.
![Page 65: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/65.jpg)
Execução
![Page 66: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/66.jpg)
Criando arrays (vetores)
Os vetores são arrays unidimensionais, eles guardam elementos de um mesmo tipo.
![Page 67: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/67.jpg)
Criando arrays (vetores)
Essa é uma das formas de criar um vetor, no caso foi criado um vetor de inteiros cujo tamanho é 10.
![Page 68: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/68.jpg)
Criando arrays (vetores)
São armazenados 10 números inteiros (de 0 a 9) e depois esses números são mostrados no console.
![Page 69: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/69.jpg)
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).
![Page 70: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/70.jpg)
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.
![Page 71: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/71.jpg)
Matrizes
Veja como é simples declarar matrizes:
Foi criada uma matriz 2x2.
![Page 72: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/72.jpg)
Matrizes
Essa matriz foi preenchida com os valores 1, 2, 3, 4. Logo após temos 2 for para mostrar os elementos.
![Page 73: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/73.jpg)
Matrizes
Outra forma de resolver o problema:
Veja que a matriz foi inicializada na declaração.
![Page 74: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/74.jpg)
Método GetValue()
Você pode pegar os elementos de um array utilizando o método GetValue(), basta passar a posição do elemento, veja:
![Page 75: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/75.jpg)
Enum
Enum são listas de valores constantes.
Foi criada a enum “mes” que possui os valores: janeiro, fevereiro e dezembro.
![Page 76: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/76.jpg)
Execução
O valor de janeiro é 0, o valor de fevereiro é 1 e o valor de dezembro é 2.
![Page 77: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/77.jpg)
Criando classes
Veja o exemplo da criação de uma classe:
![Page 78: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/78.jpg)
Criando classes
Veja a classe que usa a classe Pessoa:
![Page 79: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/79.jpg)
Métodos
O C# permite métodos com nomes iguais, mas parâmetros diferentes, veja:
![Page 80: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/80.jpg)
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.
![Page 81: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/81.jpg)
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.
![Page 82: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/82.jpg)
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.
![Page 83: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/83.jpg)
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.
![Page 84: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/84.jpg)
Herança - Exemplo
Veja a classe pai chamada Carro:
![Page 85: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/85.jpg)
Herança - Exemplo
Agora veja a classe filha chamada Camaro. Ela herda métodos e atributos da classe Carro.
![Page 86: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/86.jpg)
Herança - Exemplo
Por último, a classe que utiliza as classes criadas anteriormente:
![Page 87: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/87.jpg)
Observação
Qualquer classe no C# deriva direta ou indiretamente da classe Object, ou seja, a classe Object é classe pai de todas as classes.
![Page 88: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/88.jpg)
Sobrescrevendo métodos
É preciso dizer que o método da classe pai que você quer sobrescrever é virtual.
![Page 89: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/89.jpg)
Sobrescrevendo métodos
Na classe filha, é preciso utilizar a palavra “override” para sobrescrever o método.
![Page 90: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/90.jpg)
Sobrescrevendo métodos
![Page 91: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/91.jpg)
Palavra reservada “base”
A palavra reservada “base” faz referência aos métodos e atributos da classe pai. Veja:
![Page 92: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/92.jpg)
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”.
![Page 93: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/93.jpg)
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.
![Page 94: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/94.jpg)
Polimorfismo
A primeira classe filha da classe Operacao é a classe Soma, ela implementa o método “calcular” sobrescrevendo (override).
![Page 95: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/95.jpg)
Polimorfismo
A segunda classe filha da classe Operacao é a classe Subtracao, ela implementa o método “calcular” sobrescrevendo (override).
![Page 96: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/96.jpg)
Polimorfismo
Perceba que a classe Soma implementa o método calcular de um jeito e a classe Subtracao implementa de outro.
![Page 97: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/97.jpg)
Polimorfismo
Segue a classe que contém o método principal:
![Page 98: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/98.jpg)
Execução
![Page 99: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/99.jpg)
Observação
Métodos abstratos só possuem assinatura, não possuem corpo (implementação).
![Page 100: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/100.jpg)
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”.
![Page 101: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/101.jpg)
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.
![Page 102: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/102.jpg)
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.
![Page 103: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/103.jpg)
Criando interfaces
A classe Pessoa implementa os métodos da interface Entidade.
![Page 104: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/104.jpg)
Criando interfaces
Os métodos implementados na classe Pessoa tem que ser public.
![Page 105: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/105.jpg)
Criando interfaces
Testando a aplicação:
![Page 106: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/106.jpg)
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.
![Page 107: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/107.jpg)
Estruturas (struct)
Veja um exemplo utilizando estrutura:
![Page 108: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/108.jpg)
Criando uma lista com List
Veja como é fácil criar uma lista usando List:
![Page 109: Introdução a linguagem C# (CSharp)](https://reader031.fdocumentos.com/reader031/viewer/2022012322/55611e35d8b42a98508b4937/html5/thumbnails/109.jpg)
Contato
Quaisquer dúvidas, sugestões ou críticas é só entrar em contato:
www.about.me/mcastrosouzawww.slideshare.net/mcastrosouza