introdução a linguagem c# (csharp)

109
INTRODUÇÃO A LINGUAGEM C# Marcos Castro

Upload: marcos-castro

Post on 24-May-2015

3.390 views

Category:

Education


6 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Introdução a linguagem C# (CSharp)

INTRODUÇÃO A LINGUAGEM C#

Marcos Castro

Page 2: Introdução a linguagem C# (CSharp)

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)

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)

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)

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)

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)

Primeiros passos

Primeiramente crie um projeto (File -> New Project)

Page 8: Introdução a linguagem C# (CSharp)

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)

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)

Explicação

As classes são organizadas em namespaces. System é um namespace.

Page 11: Introdução a linguagem C# (CSharp)

Explicação

Console é uma classe do namespace System.

Page 12: Introdução a linguagem C# (CSharp)

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)

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)

Explicação

WriteLine é um método da classe Console. É passada a string “Hello World!”.

Page 15: Introdução a linguagem C# (CSharp)

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)

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)

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)

Executando sem Visual C#

Procure pelo arquivo “csc.exe”. É esse arquivo que compilará o programa.

Page 19: Introdução a linguagem C# (CSharp)

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)

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)

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)

Executando sem Visual C#

Page 23: Introdução a linguagem C# (CSharp)

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)

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)

Obtendo dados do usuário

O operador “+” concatena strings.

Page 26: Introdução a linguagem C# (CSharp)

Execução

Page 27: Introdução a linguagem C# (CSharp)

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)

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)

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)

Convertendo string para inteiro Convertendo string para inteiro (int):

Basta utilizar a função Parse().

Page 31: Introdução a linguagem C# (CSharp)

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)

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)

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)

Execução

Page 35: Introdução a linguagem C# (CSharp)

Obtendo uma substring

Para obter uma substring, basta utilizar o método Substring().

Page 36: Introdução a linguagem C# (CSharp)

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)

Execução

Page 38: Introdução a linguagem C# (CSharp)

Tamanho de uma string

Basta utilizar o atributo Length para saber o tamanho de uma string.

Page 39: Introdução a linguagem C# (CSharp)

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)

Concatenando strings

Basta utilizar o método Concat() da classe String.

Page 41: Introdução a linguagem C# (CSharp)

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)

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)

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)

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)

Execução

Page 46: Introdução a linguagem C# (CSharp)

Juntando strings

Para juntar, pode-se utilizar o método Join().

Page 47: Introdução a linguagem C# (CSharp)

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)

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)

Métodos - Exemplo

Método somar() retorna a soma de dois números.

Page 50: Introdução a linguagem C# (CSharp)

Métodos - Outra forma

Método somar() agora não é estático (static).

Page 51: Introdução a linguagem C# (CSharp)

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)

Expressões condicionais

Exemplo com switch:

Page 53: Introdução a linguagem C# (CSharp)

Expressões condicionais

O switch pode ser utilizado com strings!

Page 54: Introdução a linguagem C# (CSharp)

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)

Laços (loops)

C# possui os seguintes laços (loops): do-while for while foreach-in

Page 56: Introdução a linguagem C# (CSharp)

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)

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)

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)

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)

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)

Tratamento de erros - try-catch Outra forma de fazer a mesma coisa:

Page 62: Introdução a linguagem C# (CSharp)

Tratamento de erros - finally

O finally é sempre executado.

Page 63: Introdução a linguagem C# (CSharp)

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)

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)

Execução

Page 66: Introdução a linguagem C# (CSharp)

Criando arrays (vetores)

Os vetores são arrays unidimensionais, eles guardam elementos de um mesmo tipo.

Page 67: Introdução a linguagem C# (CSharp)

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)

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)

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)

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)

Matrizes

Veja como é simples declarar matrizes:

Foi criada uma matriz 2x2.

Page 72: Introdução a linguagem C# (CSharp)

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)

Matrizes

Outra forma de resolver o problema:

Veja que a matriz foi inicializada na declaração.

Page 74: Introdução a linguagem C# (CSharp)

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)

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)

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)

Criando classes

Veja o exemplo da criação de uma classe:

Page 78: Introdução a linguagem C# (CSharp)

Criando classes

Veja a classe que usa a classe Pessoa:

Page 79: Introdução a linguagem C# (CSharp)

Métodos

O C# permite métodos com nomes iguais, mas parâmetros diferentes, veja:

Page 80: Introdução a linguagem C# (CSharp)

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)

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)

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)

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)

Herança - Exemplo

Veja a classe pai chamada Carro:

Page 85: Introdução a linguagem C# (CSharp)

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)

Herança - Exemplo

Por último, a classe que utiliza as classes criadas anteriormente:

Page 87: Introdução a linguagem C# (CSharp)

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)

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)

Sobrescrevendo métodos

Na classe filha, é preciso utilizar a palavra “override” para sobrescrever o método.

Page 90: Introdução a linguagem C# (CSharp)

Sobrescrevendo métodos

Page 91: Introdução a linguagem C# (CSharp)

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)

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)

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)

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)

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)

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)

Polimorfismo

Segue a classe que contém o método principal:

Page 98: Introdução a linguagem C# (CSharp)

Execução

Page 99: Introdução a linguagem C# (CSharp)

Observação

Métodos abstratos só possuem assinatura, não possuem corpo (implementação).

Page 100: Introdução a linguagem C# (CSharp)

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)

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)

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)

Criando interfaces

A classe Pessoa implementa os métodos da interface Entidade.

Page 104: Introdução a linguagem C# (CSharp)

Criando interfaces

Os métodos implementados na classe Pessoa tem que ser public.

Page 105: Introdução a linguagem C# (CSharp)

Criando interfaces

Testando a aplicação:

Page 106: Introdução a linguagem C# (CSharp)

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)

Estruturas (struct)

Veja um exemplo utilizando estrutura:

Page 108: Introdução a linguagem C# (CSharp)

Criando uma lista com List

Veja como é fácil criar uma lista usando List:

Page 109: Introdução a linguagem C# (CSharp)

Contato

Quaisquer dúvidas, sugestões ou críticas é só entrar em contato:

www.about.me/mcastrosouzawww.slideshare.net/mcastrosouza

[email protected]