Transcript

INTRODUO A Linguagem c#Jirlan Ricardo1ObjetivoO objetivo dessa apresentao proporcionar uma noo bsica da linguagem C#.Para um melhor entendimento, recomendvel que o leitor tenha uma noo de lgica de programao ou que j tenha programado em alguma outra linguagem.Essa apresentao tem como intuito ajudar quem est comeando ou quer comear a programar em C#.2IntroduoC# foi desenvolvida pela Microsoft.Foi apresentada junto a plataforma .NET.C# uma mistura de C++ e Java.Criador: Anders Hejlsberg3Caractersticas orientada a objetos.Possui um alto nvel de abstrao.Possui coletor de lixo.Suporta tipagem dinmica e esttica.A tipagem dinmica no exige declaraes de tipos de dados (a partir da verso 3.0 do C#).A tipagem esttica exige a declarao de quais dados podero ser associados a cada varivel antes da sua utilizao.4CaractersticasC# est bastante vinculada ao framework .NETO framework .NET suporta vrias linguagens de programao.C# usa a biblioteca de classe do framework .NETO framework .NET possui mais de 4 mil classes.

5Ambiente de desenvolvimentoIrei utilizar o Windows 8Visual C# 2010 Express (gratuito)http://www.visualstudio.com/downloads/download-visual-studio-vsSe voc for aluno, poder fazer download de verses pagas do Visual Studio acessando o site:https://www.dreamspark.com

6Primeiros passosPrimeiramente crie um projeto (File -> New Project)

7Primeiros passosTecle F6 para construir a aplicao e depois tecle a combinao Ctrl + F5 para executar.

8ExplicaoCtrl + F5 no Visual C# executa sem debugging. Isso fora uma pausa no final da execuo permitindo que voc possa visualizar o resultado da execuo.

J o atalho F6 o mesmo que ir no menu Debug e depois clicar em Build Solution.

9ExplicaoAs classes so organizadas em namespaces. System um namespace.

10ExplicaoConsole uma classe do namespace System.

11ExplicaoDeclarar seus prprios namespaces pode ajudar no controle do escopo da classe e nomes de mtodos em grandes projetos.Os namespaces ajudam na manuteno de um programa!

12ExplicaoQuando voc criou um projeto em C# utilizando o Visual C#, ele j adicionou:

Voc faz referncia a um namespace utilizando a palavra reservada using.

13ExplicaoWriteLine um mtodo da classe Console. passada a string Hello World!.

14ObservaesC# case-sensitive, ou seja, diferencia letras minsculas de maisculas.Com o // possvel fazer comentrios de uma linha.Comeando com /* e fechando com */ possvel fazer comentrios de mltiplas linhas.

15Executando sem Visual C#Uma IDE como Visual C# muito importante para otimizar seu tempo pois tem uma srie de recursos interessantes.Mas voc pode executar um cdigo sem o Visual C#.Para executar, basta ter o framework .NET instalado.

16Executando sem Visual C#Como saber se eu tenho o framework .NET?Abra o Windows Explorer. Se o Windows estiver instalado na partio C, clique nela, entre na pasta Windows, depois entre na pasta Microsoft.NET, entre na pasta Framework. Dentro dessa pasta voc encontrar as verses do framework.Irei utilizar a verso 3.5, ento eu clicarei na pasta chamada v3.5.

17Executando sem Visual C#Procure pelo arquivo csc.exe. esse arquivo que compilar o programa.

18Executando sem Visual C#No irei adicionar nas variveis de ambiente. Irei chamar diretamente o csc.exe digitando o endereo completo dele. No meu caso o endereo ficou:C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe

19Executando sem Visual C#Abra algum editor de sua preferncia. Irei utilizar o Notepad++. Digite o seguinte cdigo:

Salve o arquivo como HelloWorld.cs.

20Executando sem Visual C#Eu salvei o arquivo HelloWorld.cs na rea de Trabalho.Abra o cmd (prompt de comandos).Digite os seguintes comandos:cd desktopC:\Windows\Microsoft.NET\Framework\v3.5\csc.exe HelloWorld.csHelloWorld.exe

21Executando sem Visual C#

22Executando sem Visual C#Fcil no mesmo? Mas o Visual C# j faz isso para voc de forma bem mais simples!

23Obtendo dados do usurioVeja esse cdigo que obtm dados do usurio:

O mtodo ReadLine() obtm os dados.

24Obtendo dados do usurioO operador + concatena strings.

25Execuo

26AtenoNos prximos exemplos no irei colocar o namespace.Lembrando que recomendvel definir o namespace.Irei apresentar exemplos sem namespace, apenas com a classe.

27Retornando o tipo de uma varivelPrograma que retorna o tipo de uma varivel

Basta utilizar a funo GetType().

28ExecuoSystem.Single ?? Isso mesmo, float um apelido para System.Single. Cada tipo em C# tem o apelido para o tipo .NET.

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

Basta utilizar a funo Parse().

30Exibindo vrias variveisExibindo vrias variveis:

Basta usar {0}, {1} etc. e especificar as variveis.

31Tipagem implcitaNos exemplos anteriores sempre declaramos o tipo da varivel antes de utiliz-la.A partir da verso 3.0, pode-se utilizar o conceito de tipagem implcita.Tipagem implcita: no necessrio informar o tipo da varivel.Com a tipagem implcita, o tipo da varivel definido de acordo com o valor atribudo a ela.

32Tipagem implcita - ExemploVeja um exemplo com tipagem implcita:

Perceba que eu tenho a varivel ano que inteira e a varivel nome que uma string.

33Execuo

34Obtendo uma substringPara obter uma substring, basta utilizar o mtodo Substring().

35Obtendo uma substringSubstring() : o primeiro parmetro o ndice de onde comea e o segundo a quantidade de caracteres.

36Execuo

37Tamanho de uma stringBasta utilizar o atributo Length para saber o tamanho de uma string.

38Mtodo Contains()Verifica se uma string est contida na outra. Retorna True se for verdade e False caso contrrio. A sada do programa ser True.

39Concatenando stringsBasta utilizar o mtodo Concat() da classe String.

40Retirando caracteres em brancoPara retirar do final basta utilizar o mtodo TrimEnd() e para retirar do incio basta utilizar o mtodo TrimStart().

41Dividir uma stringPara dividir uma string, pode-se utilizar o mtodo Split() passando o separador que ser usado para dividir a string.

42Dividir uma stringvet um vetor de strings. A string nome dividida por um espao em branco atravs do mtodo Split.

43Dividir uma stringO comando for um comando de repetio que ir percorrer o array vet para exibir as strings.

44Execuo

45Juntando stringsPara juntar, pode-se utilizar o mtodo Join().

46Declarando constantesBasta usar a palavra reservada constantes do tipo da varivel.Na declarao de uma constante, obrigatrio atribuir um valor a ela no momento da declarao.

47MtodosC# no suporta mtodos globais.Os mtodos so declarados e utilizados de forma semelhante a outras linguagens como C, C++ e Java.

48Mtodos - ExemploMtodo somar() retorna a soma de dois nmeros.

49Mtodos - Outra forma Mtodo somar() agora no esttico (static).

50Expresses condicionaisNo C# voc poder utilizar as expresses:ifswitchExemplo com o if:

51Expresses condicionaisExemplo com switch:

52Expresses condicionaisO switch pode ser utilizado com strings!

53Observaes sobre o switchS pode ser utilizado com os tipos primitivos.Cada case contm uma expresso nica.

54Laos (loops)C# possui os seguintes laos (loops):do-whileforwhileforeach-in

55Laos (loops) - do-whileSegue um exemplo utilizando o do-while que soma os 10 primeiros nmeros naturais no nulos:

56Laos (loops) - Exemplo forSegue um exemplo utilizando o for que soma os 10 primeiros nmeros naturais no nulos:

57Laos (loops) - Exemplo whileSegue um exemplo utilizando o while que soma os 10 primeiros nmeros naturais no nulos:

58Laos (loops) - foreach-inVeja um exemplo usando o foreach-in:

Esse exemplo imprime os nmeros 1, 2 e 3.

59Tratamento de erros - try-catchVeja como capturar execuo utilizando o bloco try-catch (exceo: diviso por zero):

60Tratamento de erros - try-catchOutra forma de fazer a mesma coisa:

61Tratamento de erros - finallyO finally sempre executado.

62Classe de exceo customizadaVeja uma classe de exceo criada, ela herda de Exception.

Lembre-se de cri-la no mesmo namespace, seno voc ter que fazer referncia a outro namespace.

63Classe de exceo customizadaUtilizando a classe:

Veja que foi lanada a exceo com throw new.

64Execuo

65Criando arrays (vetores)Os vetores so arrays unidimensionais, eles guardam elementos de um mesmo tipo.

66Criando arrays (vetores)Essa uma das formas de criar um vetor, no caso foi criado um vetor de inteiros cujo tamanho 10.

67Criando arrays (vetores)So armazenados 10 nmeros inteiros (de 0 a 9) e depois esses nmeros so mostrados no console.

68Ordenar um arrayVeja como ordenar um array de inteiros:

Primeiramente o array preenchido com os nmeros: 4, 3, 2 e 1 (nessa ordem).

69Ordenar um arrayLogo aps chamado o mtodo Sort() para ordenar o array crescentemente. Por ltimo mostrado o array. Sada: 1, 2, 3, 4.

70MatrizesVeja como simples declarar matrizes:

Foi criada uma matriz 2x2.

71MatrizesEssa matriz foi preenchida com os valores 1, 2, 3, 4. Logo aps temos 2 for para mostrar os elementos.

72MatrizesOutra forma de resolver o problema:

Veja que a matriz foi inicializada na declarao.

73Mtodo GetValue()Voc pode pegar os elementos de um array utilizando o mtodo GetValue(), basta passar a posio do elemento, veja:

74EnumEnum so listas de valores constantes.

Foi criada a enum mes que possui os valores: janeiro, fevereiro e dezembro.

75ExecuoO valor de janeiro 0, o valor de fevereiro 1 e o valor de dezembro 2.

76Criando classesVeja o exemplo da criao de uma classe:

77Criando classesVeja a classe que usa a classe Pessoa:

78MtodosO C# permite mtodos com nomes iguais, mas parmetros diferentes, veja:

79ObservaoVoc percebeu que a maioria dos nossos mtodos so estticos, ou seja, tem a palavra static antes do tipo de retorno ? Pois bem, isso acontece porque so mtodos chamados no mtodo main e esse por sua vez esttico, obrigando os mtodos que so chamados tambm serem estticos.

80Parmetros opcionaisO C# permite parmetros opcionais. Parmetros opcionais so parmetros que tem um valor pr-definido caso no seja passado um valor para ele.

81Parmetros opcionaisPerceba que no foi passado parmetro algum para a funo setNome(). Mas na lista de parmetros dela tem dizendo que nome recebe a string Sem nome caso no seja passado parmetro.

82HeranaHerana um princpio de orientao a objetos, que permite que classes compartilhem atributos e mtodos.O C# no permite herana mltipla, ou seja, cada classe s pode ter um pai.

83Herana - ExemploVeja a classe pai chamada Carro:

84Herana - ExemploAgora veja a classe filha chamada Camaro. Ela herda mtodos e atributos da classe Carro.

85Herana - ExemploPor ltimo, a classe que utiliza as classes criadas anteriormente:

86ObservaoQualquer classe no C# deriva direta ou indiretamente da classe Object, ou seja, a classe Object classe pai de todas as classes.

87Sobrescrevendo mtodos preciso dizer que o mtodo da classe pai que voc quer sobrescrever virtual.

88Sobrescrevendo mtodosNa classe filha, preciso utilizar a palavra override para sobrescrever o mtodo.

89Sobrescrevendo mtodos

90Palavra reservada baseA palavra reservada base faz referncia aos mtodos e atributos da classe pai. Veja:

91PolimorfismoO polimorfismo permite que referncias de tipos de classes mais abstratas representem o comportamento das classes que referenciam.Iremos construir uma classe abstrata. Classe abstrata aquela classe que no pode ser instanciada.Para declarar uma classe como abstrata basta utilizar a palavra abstract antes de class.

92PolimorfismoA classe Operacao nossa classe abstrata, ela contm um mtodo abstrato chamado calcular. Esse mtodo precisa ser implementado pelas classes filhas da classe Operacao.

93PolimorfismoA primeira classe filha da classe Operacao a classe Soma, ela implementa o mtodo calcular sobrescrevendo (override).

94PolimorfismoA segunda classe filha da classe Operacao a classe Subtracao, ela implementa o mtodo calcular sobrescrevendo (override).

95PolimorfismoPerceba que a classe Soma implementa o mtodo calcular de um jeito e a classe Subtracao implementa de outro.

96PolimorfismoSegue a classe que contm o mtodo principal:

97Execuo

98ObservaoMtodos abstratos s possuem assinatura, no possuem corpo (implementao).

99Classe finalUma classe final uma classe que no pode ser herdada.Para declarar uma classe como final, basta utilizar a palavra sealed antes de class.

100Criando interfacesInterface um recurso da orientao a objetos que define aes que devem ser obrigatoriamente executadas.Uma classe pode implementar vrias interfaces.

101Criando interfacesPrimeiramente temos uma interface chamada Entidade.

Basta usar a palavra interface antes do nome. Veja que os mtodos no possuem implementao.

102Criando interfacesA classe Pessoa implementa os mtodos da interface Entidade.

103Criando interfacesOs mtodos implementados na classe Pessoa tem que ser public.

104Criando interfacesTestando a aplicao:

105Estruturas (struct)A diferena entre estruturas e classes que as estruturas no so alocadas na memria heap.As estruturas no suportam herana, implementam interfaces e cada varivel do tipo struct contm uma cpia dos seus valores.Estruturas so tipos valor.Estruturas podem possuir construtores, mas no podem possuir destrutores.

106Estruturas (struct)Veja um exemplo utilizando estrutura:

107Criando uma lista com ListVeja como fcil criar uma lista usando List:

108Quer Aprender mais sobre Programao s Praticar

OBRIGADO!!!!!!!!

109


Top Related