O documento discute a linguagem de programação C# (C sharp). C# é uma linguagem orientada a objetos e derivada de C++ e C, fazendo parte do framework .NET da Microsoft. O documento também fornece exemplos básicos de conceitos como classes, métodos, variáveis, loops e tipos de acesso em C#.
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:
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
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: