Aprendendo C# do zero
-
Upload
manawydan -
Category
Technology
-
view
478 -
download
1
Transcript of Aprendendo C# do zero
![Page 1: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/1.jpg)
Aprendendo C# do Zero
Por: Manawydan
![Page 2: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/2.jpg)
INICIANDOA linguagem de Programação C#(c sharpe) é uma linguagem orientada a objetos, a mesma esta inclusa dentro do pacote .NET criada pela Microsoft.
C# é uma linguagem derivada de C++ e C, sendo assim possui algumas vantagens como, tratamento de Exceptions, sistema de classes e etc.
° Vamos utilizar o programa Visual Studio C# Express Edition 2010, para podermos testar nosso códigos, entender a linguagem e aplica-la em programas simples de console.
° É recomendado ter noções de Lógica de Programação para bom entendimento, você pode encontrar material sobre o mesmo no meu canal: https://www.youtube.com/user/manawydanbr na playlist Tutorias Lógica. Boa Sorte!
![Page 3: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/3.jpg)
C# Características da Sintaxe // é usado para comentário de 1 linha./* */ usado para comentários de varias linhas.; usado no final da declaração de uma variável.{ } usado para limitar o corpo de um método/classe/namespace/if e outros blocos...Não existe variável global em C# porque variáveis e métodos vão sempre depender de uma classe, pra criar uma variável qualquer primeiro precisa criar uma classe.
![Page 4: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/4.jpg)
Exemplo C# Sintaxe
![Page 5: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/5.jpg)
Criando o Primeiro Projeto Execute o Visual Studio e Crie um novo projeto, do tipo Console Application.
Você pode fazer isso clicando em: File/New Project
De um nome para ele Editando o campo Name.
Clique em Ok.
![Page 6: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/6.jpg)
Visão Geral Do Projeto Em BrancoSeu Projeto Deve parecer com isso:
Vamos Fazer uma analise rapida do que cada coisa significa nos próximos slides.
![Page 7: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/7.jpg)
namespace
°Podemos pensar em namespace como uma biblioteca que contenha classes,struturas,enumEtc...° São uteis para organizar o codigo com os elementos acima. Podemos importar namespace usando Using NomeDoNameSpace° Você pode ter percebido que estamos importando o namespace System, sendo assim nosso script tem acesso as classes do sistema° Por padrão o Visual Studio cria um novo namespace para nosso projeto
![Page 8: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/8.jpg)
class
°Podemos pensar em classes como sendo um objeto que contem variaveis(propriedades) e função(metodos)°No nosso caso temos uma classe chamada Program e dentro da mesma temos um metodo chamado Main, esse método em especial é chamado quando o programa inicia, e podemos passar argumentos a ele
![Page 9: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/9.jpg)
void e static
A palavra void é usada para métodos que não retornam valor, se quisermos que um método retorne uma string por exemplo trocamos void para string.A palavra static é usada para acessar métodos/classes sem que seja necessario criar uma instancia da mesma, métodos static só conversão com métodos static, classes static não podem ser instanciadas.
![Page 10: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/10.jpg)
Console.WriteLine e Console.ReadLine
O método Console.WriteLine exibi uma linha de texto no console. Podemos então escreverConsole.WriteLine("Ola, qual seu nome"). Porém temos o Console.ReadLine que guarda o que nós digitamos e espera por um Enter para prosseguir. Sendo assim sempre que quisermos ver um texto exibido com Console.WriteLinetemos que usar Console.ReadLine para termos tempo de ver o que foi exibido, segue exemplo:
![Page 11: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/11.jpg)
Exemplo Write/ReadLine
Podemos Testar o Código clicando em Start Debugging ou apertando F5
![Page 12: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/12.jpg)
Cont Exemplo Write/ReadLineCom isso em mente vamos perguntar o nome, idade da pessoa, e escrever no console.
![Page 13: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/13.jpg)
Problema no Exemplo 1
Talvez você não percebeu, mas quando digitamos a idade qualquer texto é aceito, e o certo seria aceita apenas números, o que fazer então?° Vamos usar o método int.TryParse que retorna true se é possivel converter uma string em numero inteiro, junto com uma verificação if.
![Page 14: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/14.jpg)
Resolução do Exemplo 1O int.TryParse verifica
se é possivel converter um texto
em int e se for retorna true, e ainda
retorna o numero convertido pra uma variavel passada em out, por isso criamos o int idadeEmNumero
![Page 15: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/15.jpg)
Operadores RelacionaisOperadores
Lua C#
Igualdade == ==Diferente ~= !=Maior que > >Menor que < <Maior ou Igual
>= >=
Menor ou Igual
<= <=Como você pode perceber os operadores relacionais de Lua e C#
são bem parecidos com exceção do Diferente.Mas eles faze a mesma coisa, retornam true se a condição for
satisfeita
![Page 16: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/16.jpg)
Operadores LógicosOperadores
Lua C#
E and &&OU or | |NÃO not !
Como você pode perceber os operadores lógicos de Lua e C# são bem diferentes, mas no fundo fazem a
mesma coisa:"E" retorna true se 2 condições são verdadeiras"OU" retorna true se uma de 2 condições são
verdadeiras"NÃO" retorna true se uma condição for diferente de
outra, podendo inverter seu valor
![Page 17: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/17.jpg)
Operadores MatemáticosOs operadores Matemáticos de Lua e C# são os mesmos, + soma, - subtrai, / divide, * multiplica, % módulo, ^ exponenciação.No entanto C# tem alguns operadores a mais:+= significa manter o valor atual e acrecentar mais um valor ex: 5+=3 soma +3 em 5 totalizando 8. -= o mesmo de cima so que agora subtrai./= divide o valor atual por outro valor, *= multiplica o valor atual por outro valor.-- subtrai 1 do valor atual, ++ adiciona +1
![Page 18: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/18.jpg)
Exemplo Operadores Matematicos
![Page 19: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/19.jpg)
Revendo if
O if em Lua e em C# e na maioria das linguagens faz a mesma coisa: verifica se uma condição é true(verdadeira) e se for então executa alguma ação, o que muda do if de Lua pra C# é que o if de C# deve ser declarado com { } abre e fecha chaves.Ex: if(1==1){Console.WriteLine("1 igual a 1, isso é verdade"); }Ou seja o then e end de Lua "seria" a chave aberta e a chave fechada.
![Page 20: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/20.jpg)
Else
O else de Lua e C# faz a mesma coisa: se um if falhar(sua condição ficar false) ele executa o conteúdo que esta dentro do else.A única coisa que muda é novamente as chaves { } pra limitar o corpo do else, segue um exemplo no próximo slide
![Page 21: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/21.jpg)
If else Exemplo C#
![Page 22: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/22.jpg)
Else if
Você deve ter percebido que o if junto com else, apenas funciona se uma condição é true ou false, mas e se precisarmos checar 3 tipos de possibilidade invés de só true ou false? Usamos o else if, que seria um "senão se o valor for tal", acompanhe o próximo slide.
![Page 23: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/23.jpg)
Else if Exemplo de uso
![Page 24: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/24.jpg)
Arrays
Por C# ser uma linguagem fortemente tipada, não existem arrays de valores misturados, ou seja se você cria um array de int ele só vai poder ter int e nada mais.Se você não sabe o que são arrays: são conjuntos de dados numa mesma parte da memória, simplificando " uma variavel com varios indice, onde cada indice é um novo valor".
![Page 25: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/25.jpg)
Exemplo de Arrays
![Page 26: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/26.jpg)
Loops Laços de RepetiçãoOs loops ou laços de repetição, são forma de executar o mesmo bloco de código varias vezes. Alguns laços de C#: For While ForeachNos próximos slides vamos ver exemplo de cada um.
![Page 27: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/27.jpg)
Loop for
![Page 28: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/28.jpg)
Loop while
![Page 29: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/29.jpg)
Loop em ArraysPodemos usar loop para percorrer arrays rapidamente, verificar os valores dentro do array, Fazer comparações entre eles, segue o próximo slide onde mostro um exemplo de como fazer isso
![Page 30: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/30.jpg)
Loops em Array Exemplo
![Page 31: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/31.jpg)
Tratamento de exceções com tryPodemos tratar exceções com try e catch, onde se alguma exceção ocorrer podemos trata-la.
![Page 32: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/32.jpg)
EnumPodemos considerar enum como uma lista de valores limitada e constante.
![Page 33: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/33.jpg)
Encapsulamento E Modificadores
Temos diferentes tipos de modificadores de acesso e encapsulamento em C#.privatepublicprotected
![Page 34: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/34.jpg)
public
Usando o modificador public em variaveis/métodos e afins, qualquer classe pode acessa-lo, alterar seu valor, é o nível de permissão mais "liberal".
![Page 35: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/35.jpg)
private
Usando o modificador private em variaveis, métodos e afins, só podem ser acessados dentro do corpo da classe que o criou, é o modificador menos "liberal".
![Page 36: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/36.jpg)
protected
Usando o modificador protected, o acesso do mesmo só é permitido a classe que o criou ou suas classes derivadas.
![Page 37: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/37.jpg)
classes
"Podemos pensar em classes como sendo um objeto que contem variaveis(propriedades) e função(metodos)".Sendo assim podemos criar "objetos" customizáveis, vamos pensar em uma classe que "simula" características de um veiculo, sendo assim esta poderá ter variáveis de modelo, placa, ano, velocidade ... e métodos como acelerar por exemplo:
![Page 38: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/38.jpg)
Classe exemplo Veiculo
Apesar de não aparecer as variáveis e o método são private por padrão
![Page 39: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/39.jpg)
Construtor de classes
Construtores são chamados sempre que uma classe é instanciada, eles são uteis para passar parâmetros na hora da criação de uma classe, sendo assim deixando o código mais flexível e atribuir valores padrão a suas variáveis.Para criar um construtor criamos um "método" do mesmo tipo da classe e passamos parametrosSegue o exemplo no proximo slide.
![Page 40: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/40.jpg)
Classe Veiculo com construtor
![Page 41: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/41.jpg)
Classe Herança
Uma classe pode herdar de outra, sendo assim a classe derivada (a classe que herdou de outra)Pode reutilizar suas variáveis, métodos ... e mudar o comportamento dos mesmos. A classe que foi herdada é chamada de base.Ex: você tem uma classe Veiculo, e então cria uma classe Carro e permite que Carro derive de Veiculo, então as característica de Veiculo são adicionadas automaticamente em Carro.
![Page 42: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/42.jpg)
Editando Veiculos Para melhor proveito de herança
Apenas utilizei o protected para ele ser acessivel as classes derivadas
![Page 43: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/43.jpg)
Classe Carro que herda de Veiculos
Os : Veiculo significa que classe Carro herda de Veiculo, e perceba que as variáveis ano e modelo e o método Acelerar são disponíveis a
classe Carro.Além disso criamos um método que pertence a Carro chamado Freiar, ou seja Carro tem o conteúdo de Veiculo + seu próprio
conteúdo .
![Page 44: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/44.jpg)
virtual
A palavra chave virtual é usada principalmente em métodos para serem sobrescritos nas classes derivadas usando override. Esse método virtual deve estar presente na classe base e pode ou não ser sobrescrito nas classes derivadas, o mesmo tem que ser do mesmo tipo e deve ser public veja o exemplo:
![Page 45: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/45.jpg)
Classe Veiculo com método virtual
![Page 46: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/46.jpg)
Classe Carro herda de Veiculo e sobrescreve o método Acelerar
![Page 47: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/47.jpg)
Classe abstract
Classes abstract são usadas normalmente para servir de classe base para outras classes, métodos abstract devem ser sobrescritos com override, classes abstract não podem ser instanciadas, os métodos abstract não podem ter "corpo" dentro da classe abstract, e seu corpo deve ser sobrescrito nas classes derivadas. Segue o exemplo:
![Page 48: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/48.jpg)
Exemplo Classe abstract
![Page 49: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/49.jpg)
Classe Quadrado herda de FormaGeometrica
![Page 50: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/50.jpg)
interface
Basicamente interfaces são implementações de métodos e propriedades, os métodos e propriedades de uma interface não podem possuir corpo igual a classes abstract, entretanto uma classe pode derivar de varias interfaces, e so pode derivar de uma classe, isso faz com que as interfaces sejam poderosa.Segue exemplo no próximo slide:
![Page 51: Aprendendo C# do zero](https://reader035.fdocumentos.com/reader035/viewer/2022062306/587669d51a28abd0018b4c51/html5/thumbnails/51.jpg)
Ex interface