SlideShare une entreprise Scribd logo
1  sur  51
Por: Manawydan
A linguagem de ProgramaçãoC#(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 programaVisual 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 playlistTutorias
Lógica. Boa Sorte!
// é 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.
Execute oVisual 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.
Seu Projeto Deve parecer com isso:
Vamos Fazer uma analise rapida do que cada coisa significa nos
próximos slides.
°Podemos pensar em namespace como uma
biblioteca que contenha classes,struturas,enum
Etc...
° 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 oVisual Studio cria um novo
namespace para nosso projeto
°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
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.
O método Console.WriteLine exibi uma linha
de texto no console. Podemos então escrever
Console.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.WriteLine
temos que usar Console.ReadLine para termos
tempo de ver o que foi exibido, segue exemplo:
PodemosTestar o Código clicando em Start
Debugging ou apertando F5
Com isso em mente vamos perguntar o nome,
idade da pessoa, e escrever no console.
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.
O 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
Operadores 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
Operadores 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
Os 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
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.
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
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.
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".
Os 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
Foreach
Nos próximos slides vamos ver exemplo de
cada um.
Podemos 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
Podemos tratar exceções com try e catch, onde
se alguma exceção ocorrer podemos trata-la.
Podemos considerar enum como uma lista de
valores limitada e constante.
Temos diferentes tipos de modificadores de
acesso e encapsulamento em C#.
private
public
protected
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".
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".
Usando o modificador protected, o acesso do
mesmo só é permitido a classe que o criou ou
suas classes derivadas.
"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:
Apesar de não aparecer as variáveis e o método são private por
padrão
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
parametros
Segue o exemplo no proximo slide.
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 classeVeiculo, e então cria
uma classe Carro e permite que Carro derive de
Veiculo, então as característica deVeiculo são
adicionadas automaticamente emCarro.
Apenas utilizei o protected para ele ser acessivel as classes derivadas
Os :Veiculo significa que classe Carro herda deVeiculo, 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 deVeiculo + seu próprio conteúdo .
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:
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:
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:
Aprendendo C# do zero

Contenu connexe

Tendances

Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
Denis Sobrenome
 
Poo1 aula 6 - conversão de tipos primitivos
Poo1   aula 6 - conversão de tipos primitivosPoo1   aula 6 - conversão de tipos primitivos
Poo1 aula 6 - conversão de tipos primitivos
Denis Sobrenome
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
Tácito Graça
 

Tendances (20)

Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01Algoritmo 01 - Semana 01
Algoritmo 01 - Semana 01
 
02 controle de fluxo
02   controle de fluxo02   controle de fluxo
02 controle de fluxo
 
Interface
InterfaceInterface
Interface
 
Java: Condicionais
Java: CondicionaisJava: Condicionais
Java: Condicionais
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 
Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)Estruturas de repetição (parte 01)
Estruturas de repetição (parte 01)
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
Poo1 aula 4 - tipos de dados variáveis-constantes
Poo1   aula 4 - tipos de dados variáveis-constantesPoo1   aula 4 - tipos de dados variáveis-constantes
Poo1 aula 4 - tipos de dados variáveis-constantes
 
Poo1 aula 6 - conversão de tipos primitivos
Poo1   aula 6 - conversão de tipos primitivosPoo1   aula 6 - conversão de tipos primitivos
Poo1 aula 6 - conversão de tipos primitivos
 
Final e aastract
Final e aastractFinal e aastract
Final e aastract
 
Aula05 - Lógica de Programação
Aula05 - Lógica de ProgramaçãoAula05 - Lógica de Programação
Aula05 - Lógica de Programação
 
Action script1 apresentação2
Action script1 apresentação2Action script1 apresentação2
Action script1 apresentação2
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1
 
Aula02 - Lógica de Programação
Aula02 - Lógica de ProgramaçãoAula02 - Lógica de Programação
Aula02 - Lógica de Programação
 
Algoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla EscolhaAlgoritmos 01 - Semana 06 - Múltipla Escolha
Algoritmos 01 - Semana 06 - Múltipla Escolha
 
Aula 1 2
Aula 1 2Aula 1 2
Aula 1 2
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
Uma abordagem funcional para gerenciamento de erros
Uma abordagem funcional para gerenciamento de errosUma abordagem funcional para gerenciamento de erros
Uma abordagem funcional para gerenciamento de erros
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionais
 

En vedette

Nelson faria - Acordes Arpejos e Escalas para violão e guitarra
Nelson faria - Acordes Arpejos e Escalas para violão e guitarraNelson faria - Acordes Arpejos e Escalas para violão e guitarra
Nelson faria - Acordes Arpejos e Escalas para violão e guitarra
conexart
 

En vedette (19)

Ctae curso-de-html-nte-ananin
Ctae curso-de-html-nte-ananinCtae curso-de-html-nte-ananin
Ctae curso-de-html-nte-ananin
 
2 introdução c sharp
2  introdução c sharp2  introdução c sharp
2 introdução c sharp
 
Tema 1 | Introdução a PHP
Tema 1 | Introdução a PHPTema 1 | Introdução a PHP
Tema 1 | Introdução a PHP
 
Scc0241m01revisao
Scc0241m01revisaoScc0241m01revisao
Scc0241m01revisao
 
Treinamento em linguagem c, 2ª ed. - Victorine Viviane Mizrahi
Treinamento em linguagem c, 2ª ed. - Victorine Viviane MizrahiTreinamento em linguagem c, 2ª ed. - Victorine Viviane Mizrahi
Treinamento em linguagem c, 2ª ed. - Victorine Viviane Mizrahi
 
Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)Tema 2 | Linguagem PHP Básico (I)
Tema 2 | Linguagem PHP Básico (I)
 
Apostila de web - Curso de Programação Básica de Internet
Apostila de web - Curso de Programação Básica de InternetApostila de web - Curso de Programação Básica de Internet
Apostila de web - Curso de Programação Básica de Internet
 
Curso de piano para iniciantes 1.0
Curso de piano para iniciantes 1.0Curso de piano para iniciantes 1.0
Curso de piano para iniciantes 1.0
 
Curso online wordpress aula 1
Curso online wordpress aula 1Curso online wordpress aula 1
Curso online wordpress aula 1
 
Algoritmos e Programação I
Algoritmos e Programação IAlgoritmos e Programação I
Algoritmos e Programação I
 
Desvendando o python
Desvendando o pythonDesvendando o python
Desvendando o python
 
Introdução a linguagem de programação Python
Introdução a linguagem de programação PythonIntrodução a linguagem de programação Python
Introdução a linguagem de programação Python
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Curso de Java #05 - Swing e JavaFX
Curso de Java #05 - Swing e JavaFXCurso de Java #05 - Swing e JavaFX
Curso de Java #05 - Swing e JavaFX
 
Apostila Criação de Sites
Apostila Criação de SitesApostila Criação de Sites
Apostila Criação de Sites
 
Nelson faria - Acordes Arpejos e Escalas para violão e guitarra
Nelson faria - Acordes Arpejos e Escalas para violão e guitarraNelson faria - Acordes Arpejos e Escalas para violão e guitarra
Nelson faria - Acordes Arpejos e Escalas para violão e guitarra
 
Livro proibido do curso de hacker completo 285 páginas 71
Livro proibido do curso de hacker completo 285 páginas 71Livro proibido do curso de hacker completo 285 páginas 71
Livro proibido do curso de hacker completo 285 páginas 71
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados
 

Similaire à Aprendendo C# do zero

ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
biandamakengo08
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
Regis Magalhães
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
jmtofoli
 
Live Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android StudioLive Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android Studio
Vinícius Thiengo
 

Similaire à Aprendendo C# do zero (20)

ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#ebook-completo c# o melhor para começar no c#
ebook-completo c# o melhor para começar no c#
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Pacotes -organizando_suas_classes_e_bibliotecas
Pacotes  -organizando_suas_classes_e_bibliotecasPacotes  -organizando_suas_classes_e_bibliotecas
Pacotes -organizando_suas_classes_e_bibliotecas
 
Estruturas blade-repeticao
Estruturas blade-repeticaoEstruturas blade-repeticao
Estruturas blade-repeticao
 
05 - Sincronização de Threads - I
05 - Sincronização de Threads - I05 - Sincronização de Threads - I
05 - Sincronização de Threads - I
 
Orientação a objetos com PHP
Orientação a objetos com PHPOrientação a objetos com PHP
Orientação a objetos com PHP
 
Aula2
Aula2Aula2
Aula2
 
Live Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android StudioLive Templates Para Otimização de Tempo no Android Studio
Live Templates Para Otimização de Tempo no Android Studio
 
Java11
Java11Java11
Java11
 
10 heranca
10   heranca10   heranca
10 heranca
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Aula 3
Aula 3Aula 3
Aula 3
 
Java & orientação a objetos
Java & orientação a objetosJava & orientação a objetos
Java & orientação a objetos
 
Aula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane FidelixAula 1 - Java - Prof.ª Cristiane Fidelix
Aula 1 - Java - Prof.ª Cristiane Fidelix
 
Aula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane FidelixAula1- Java PRof.ª Cristiane Fidelix
Aula1- Java PRof.ª Cristiane Fidelix
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 

Dernier

Dernier (8)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Aprendendo C# do zero

  • 2. A linguagem de ProgramaçãoC#(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 programaVisual 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 playlistTutorias Lógica. Boa Sorte!
  • 3. // é 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.
  • 4.
  • 5. Execute oVisual 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.
  • 6. Seu Projeto Deve parecer com isso: Vamos Fazer uma analise rapida do que cada coisa significa nos próximos slides.
  • 7. °Podemos pensar em namespace como uma biblioteca que contenha classes,struturas,enum Etc... ° 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 oVisual Studio cria um novo namespace para nosso projeto
  • 8. °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
  • 9. 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.
  • 10. O método Console.WriteLine exibi uma linha de texto no console. Podemos então escrever Console.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.WriteLine temos que usar Console.ReadLine para termos tempo de ver o que foi exibido, segue exemplo:
  • 11. PodemosTestar o Código clicando em Start Debugging ou apertando F5
  • 12. Com isso em mente vamos perguntar o nome, idade da pessoa, e escrever no console.
  • 13. 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.
  • 14. O 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
  • 15. Operadores 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
  • 16. Operadores 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
  • 17. Os 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
  • 18.
  • 19. 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.
  • 20. 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
  • 21.
  • 22. 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.
  • 23.
  • 24. 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".
  • 25.
  • 26. Os 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 Foreach Nos próximos slides vamos ver exemplo de cada um.
  • 27.
  • 28.
  • 29. Podemos 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
  • 30.
  • 31. Podemos tratar exceções com try e catch, onde se alguma exceção ocorrer podemos trata-la.
  • 32. Podemos considerar enum como uma lista de valores limitada e constante.
  • 33. Temos diferentes tipos de modificadores de acesso e encapsulamento em C#. private public protected
  • 34. 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".
  • 35. 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".
  • 36. Usando o modificador protected, o acesso do mesmo só é permitido a classe que o criou ou suas classes derivadas.
  • 37. "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:
  • 38. Apesar de não aparecer as variáveis e o método são private por padrão
  • 39. 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 parametros Segue o exemplo no proximo slide.
  • 40.
  • 41. 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 classeVeiculo, e então cria uma classe Carro e permite que Carro derive de Veiculo, então as característica deVeiculo são adicionadas automaticamente emCarro.
  • 42. Apenas utilizei o protected para ele ser acessivel as classes derivadas
  • 43. Os :Veiculo significa que classe Carro herda deVeiculo, 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 deVeiculo + seu próprio conteúdo .
  • 44. 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:
  • 45.
  • 46.
  • 47. 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:
  • 48.
  • 49.
  • 50. 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: