surgimento do c#vitorsouza/archive/2020/wp-content/uploads/teachi… · surgimento do c# no final...
TRANSCRIPT
![Page 1: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/1.jpg)
GRUPO:Igor de Oliveira NunesMateus Tassinari FerreiraRenan Sarcinelli
![Page 2: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/2.jpg)
Surgimento do C#
No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda vez que um programador precisava migrar para uma nova linguagem, era necessário aprender tanto a nova linguagem quanto suas bibliotecas e conceitos. Para solucionar esses problemas, a Microsoft recorreu à linguagem Java.
Porém, a linguagem Java possuía um grave problema: ela não se comunicava bem com o as bibliotecas de código nativo (código de máquina) que já existiam. Para resolver isso, a Microsoft decidiu criar a sua própria implementação do Java chamado J++.
![Page 3: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/3.jpg)
Surgimento do C#
Porém, o J++ era uma versão da linguagem Java que só podia ser executada no ambiente Microsoft, o que violava o licenciamento feito com a Sun e, por isso, a Microsoft foi processada.
Microsoft então cria uma nova plataforma chamada de .Net. Diversas linguagens diferentes compartilhariam o mesmo conjunto de bibliotecas. Um novo projeto de linguagem de programação foi iniciado, o projeto COOL (C-like Object Oriented Language). Em 2002, o projeto COOL foi lançado como linguagem C# 1.0 junto com o ambiente .Net 1.0.
![Page 4: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/4.jpg)
Surgimento do C#
![Page 5: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/5.jpg)
Microsoft .NET
Iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações.
Com idéia semelhante à plataforma Java, o programador deixa de escrever código para um sistema específico, e passa a escrever para a plataforma .NET.
![Page 6: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/6.jpg)
Microsoft .NET
A plataforma .NET é executada sobre uma - CLR(Ambiente de Execução Independente de Linguagem) interagindo com um Conjunto de Bibliotecas Unificadas (framework).
Capaz de executar mais de 33 diferentes linguagens de programação, interagindo entre si como se fossem uma única linguagem.
Exemplos:> C#> C++> Fortran> Haskell> Lua> Python
![Page 7: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/7.jpg)
Visual Studio
O Visual Studio é a plataforma da Microsoft(IDE) destinada a desenvolvedores que trabalham com a linguagem de programação C# e com o framework .NET. Sua principal função é auxiliar programadores na criação de aplicações para o Windows.
![Page 8: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/8.jpg)
Baixando Visual Studio/Microsoft .NETMicrosoft .NET:
http://msdn.microsoft.com/pt-br/vstudio/aa496123
Visual Studio:http://msdn.microsoft.com/pt-BR/vstudio
Versões mais atuais:
Microsoft .NET 4.5.2 e linguagem C# 5.0
Tutorias e informações sobre C#:http://msdn.microsoft.com/pt-br/library/kx37x362.aspx (Português)
http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx (Inglês)
![Page 9: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/9.jpg)
Compilador .NET
● Compilador Híbrido
![Page 10: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/10.jpg)
Compilando e Rodando programas.
● Windows ○ Visual Studio○ csc
● Linux ○ gmcs○ mono
![Page 11: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/11.jpg)
Palavras chaves● Palavras chaves em C# são também reservadas :
abstract as base bool break byte
case catch char checked class const
continue decimal default delegate do double
else enum event explicit extern false
finally fixed float for foreach goto
if implicit in int interface internal
is lock long namespace new null
object operator out override params privated
protected public readonly ref return sbyte
sealed short sizeof stackalloc static string
struct switch this throw true try
typeof uint ulong unchecked unsafe ushort
using virtual void volatile while
![Page 12: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/12.jpg)
Amarrações
C# é case sensitive
![Page 13: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/13.jpg)
Escopo
C# possui escopo estático
![Page 14: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/14.jpg)
Tipos de dados
● Em C# existem duas grandes categorias de Tipos, os tipos valores e tipos referência, porém ambos podem assumir tipos genéricos o que leva a necessidade do tipo parâmetro.
● Existe ainda um terceiro grupo de tipos os tipo ponteiros mas estes só são permitidos em modo inseguro que será detalhado mais a frente.
● A principal diferença entre tipos valores e tipos referência são o conteúdo de cada um.Tipos valores guardam os dados da variável e tipos referência as referências.
● O sistema de tipos de C# é unificado, ou seja seja qual for o seu tipo todas as variáveis podem ser tratadas como objetos, pois, todos os tipos derivam direta ou indiretamente do tipo base objeto
![Page 15: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/15.jpg)
Tipos Valores● value-type:
○ struct-type:■ type-name■ simple-type:
● numeric-type:○ integral-type:
■ sbyte■ byte■ short■ ushort■ int■ uint■ long■ ulong■ char
○ floating-point-type:■ float■ double
○ decimal● bool
■ nullable-type:● non-nullable-value-type ?
○ enum-type:■ type-name
![Page 16: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/16.jpg)
Nullable type
Permite que qualquer tipo non-nullable (não anulável) assuma o valor nulo (null):
![Page 17: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/17.jpg)
Struct type
![Page 18: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/18.jpg)
Enum type
![Page 19: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/19.jpg)
Tipos referência
● reference-type:
○ class-type:■ type-name■ object■ dynamic■ string
○ interface-type:■ type-name
○ array-type:■ non-array-type rank-specifiers
● rank-specifier○ rank-specifiers rank-specifier
■ [ dim-separatorsopt ]● ,● dim-separators ,
○ delegate-type:■ type-name
![Page 20: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/20.jpg)
Class type
![Page 21: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/21.jpg)
Class List<>
![Page 22: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/22.jpg)
String
![Page 23: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/23.jpg)
Object and Dynamic
● O tipo objeto é a base para todos os outros tipos. Como dito anteriormente todos os outros tipos herdam do tipo objeto
● Assim como o tipo objeto o tipo dynamic também referencia qualquer outro tipo. A diferença do tipo dynamic para o object é que suas amarrações são feitas em tempo de execução permitindo tipagem dinâmica entre outros artifícios.
![Page 24: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/24.jpg)
Array type
![Page 25: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/25.jpg)
Delegate types
![Page 26: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/26.jpg)
Tipo ponteiros
int* p1, p2, p3; // Ok em C#int *p1, *p2, *p3; // Não funciona em C#
![Page 27: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/27.jpg)
Stack e Heap
O gerenciamento da memória é feito em duas áreas de memória, o Stack e o Heap.
O Stack é uma área bem pequena de memória (alguns KB) e funciona no formato de pilha.
Os dados armazenados na Stack são os “Value Types” (Tipos valores).
![Page 28: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/28.jpg)
Stack e Heap
Os dados armazenados na Heap são os “Reference Types” (Tipos referência).
Garbage Collector é responsável pela limpeza desta área de memória.
![Page 29: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/29.jpg)
Garbage Collector
![Page 30: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/30.jpg)
Leitura e escrita em arquivos
O C# utiliza o Stream para ler e escrever em arquivos. Sempre que se pretender ler ou escrever dados (bytes) num arquivo, deve ser utilizado ou criado um objeto Stream.
A classe Stream está disponível na biblioteca IO, por isso devemos inclui-la no arquivo da classe.
Using System.IO;
![Page 31: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/31.jpg)
Leitura e escrita em arquivos
![Page 32: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/32.jpg)
Leitura e escrita em arquivos
![Page 33: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/33.jpg)
Persistência de Dados
● Serialização:
Muitas aplicações necessitam de armazenar ou transferir objetos. O .NET inclui muitas técnicas de serialização.
As principais são converter objetos em binário ou documentos XML.
![Page 34: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/34.jpg)
Persistência de Dados
● Serialização binária:
![Page 35: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/35.jpg)
Persistência de Dados
● Serialização XML:
![Page 36: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/36.jpg)
Valores Default
![Page 37: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/37.jpg)
Variable Arguments
![Page 38: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/38.jpg)
Passagem de Parâmetros
A passagem de parâmetros de C# é posicional.
O momento de passagem é normal.
Pode ser por cópia ou referência(através da palavra ref).
![Page 39: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/39.jpg)
Namespace
São delimitados através do uso do operador . (ponto).
O namespace global é o namespace "raíz": global::System sempre irá se referir ao namespace System do .NET Framework.
using evita a necessidade de especificar o nome do namespace para cada classe.Exemplo: System.Console.WriteLine("Hello World!"); ou
using System; Console.WriteLine("Hello World");
![Page 40: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/40.jpg)
Namespace
- Um pacote representa uma pasta. - Namespace não está relacionado a pasta. - Bibliotecas são importadas com import, e situa-se
depois da declaração do pacote. - As classes são importadas através do using, e se
encontram antes da declaração do namespace, pois em C# a classe é delimitada pelo namespace a que pertence.
● Comparação com Package(Java):
![Page 41: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/41.jpg)
Verificação de Tipos
C# faz verificação de tipos mista.
Maior parte das verificações de tipos em tempo de compilação.
Outras em tempo de execução.
![Page 42: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/42.jpg)
Verificação de tipos
C# possui tipagem estática e dinâmica (através do tipo dynamic).
C# é quase fortemente tipada
Ex.: double soma(double a, int b) { return a + b;
}
Os tipos de dados que função suporta estão bem definidos(double e int) e o tipo de dado que a função devolve também(double).
![Page 43: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/43.jpg)
PolimorfismoConversões implícitas:
· Identity conversions· Implicit numeric conversions· Implicit enumeration conversions.· Implicit nullable conversions· Null literal conversions· Implicit reference conversions· Boxing conversions· Implicit dynamic conversions· Implicit constant expression conversions· User-defined implicit conversions· Anonymous function conversions· Method group conversions
![Page 44: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/44.jpg)
PolimorfismoConversões explícitas:
· All implicit conversions.· Explicit numeric conversions.· Explicit enumeration conversions.· Explicit nullable conversions.· Explicit reference conversions.· Explicit interface conversions.· Unboxing conversions.· Explicit dynamic conversions· User-defined explicit conversions.
![Page 45: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/45.jpg)
Polimorfismo
![Page 46: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/46.jpg)
Polimorfismo
![Page 47: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/47.jpg)
Polimorfismo
![Page 48: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/48.jpg)
Polimorfismo de Sobrecarga
![Page 49: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/49.jpg)
Polimorfismo de Sobrecarga
![Page 50: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/50.jpg)
Polimorfismo Paramétrico
![Page 51: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/51.jpg)
Polimorfismo de Inclusão
C# Não Suporta Herança Múltipla
![Page 52: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/52.jpg)
Sobrescrita de Métodos
• Na superclasse devemos ter o modificador de acesso virtual.• Virtual indica que o método pode ser sobrescrito na classe derivada. • O método da subclasse que irá sobrescrever, deverá ter o modificador de acesso override.
![Page 53: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/53.jpg)
Classe Abstrata
![Page 54: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/54.jpg)
Exceções
• C# possui mecanismos de tratamento de excessões.• Funcionam, basicamente, como os de C++.• A classe System.Exception é o tipo base de todas as
exceções e contém duas propriedades (especificadas na chamada do contrutor) que todas as exceções compartilham:• Message: contém a descrição do motivo da exceção;• InnerException: refere-se à exceção que gerou a
exceção atual (o valor é null se não for causada por outra exceção).
![Page 55: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/55.jpg)
Exceções
• As exceções são lançadas de duas formas diferentes:
• pela instrução throw (imediatamente e incondicionalmente).
• por meio de condições excepcionais que ocorrem durante o processo de instruções ou expressões (e.g. System.DivideByZeroException).
![Page 56: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/56.jpg)
Exceções
• Bloco try inclui comandos e métodos que podem gerar uma situação de exceção.
• Quando a exceção ocorre, o sistema busca o catch mais próximo e prepara-se para executar as instruções deste bloco.
• Porém, antes de iniciar a execução do bloco catch, é executado qualquer bloco finally associado à chamadas try mais aninhadas do que aquela que causou a exceção.
![Page 57: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/57.jpg)
Exceções
![Page 58: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/58.jpg)
Exceções
![Page 59: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/59.jpg)
Concorrência
• No .NET o namespace System.Threading fornece as classes e interfaces que permitem a programação concorrente (Semaphore, Mutex, Monitor, etc.).
• Para criar uma thread é utilizada a classe Thread.
![Page 60: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/60.jpg)
Concorrência
![Page 61: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/61.jpg)
Avaliação da Linguagem
Critérios C# C++ Java
Aplicabilidade Parcial Sim Parcial
Confiabilidade Parcial Não Sim
Aprendizado Não Não Não
Eficiência Parcial Sim Parcial
Portabilidade Sim Não Sim
Método de projeto OO Estruturado e OO OO
Evolutibilidade Parcial Parcial Sim
Reusabilidade Sim Sim Sim
Integração Sim Sim Parcial
![Page 62: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/62.jpg)
Avaliação da Linguagem
Critérios C# C++ Java
Encapsulamento e Proteção
Sim Sim Sim
Sistemas de Tipos Parcial Parcial Sim
Verificação de Tipos
Estática / Dinâmica
Estática / Dinâmica
Estática / Dinâmica
Polimorfismo Todos Todos Todos
Excessão Parcial Parcial Sim
Concorrência Sim Não (biblioteca de funções)
Sim
![Page 63: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/63.jpg)
Avaliação da Linguagem
Critérios C# C++ Java
Escopo Sim Sim Sim
Expressões e Comandos
Sim Sim Sim
Gerênciamento de Memória
Programador / Sistema
Programador Sistema
Passagem de Parâmetros
Lista variável, default, por valor e por referência
Lista variável, default, por valor e por referência
Lista variável, por valor e por cópia de referência
![Page 64: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/64.jpg)
Referências:
● http://msdn.microsoft.com/pt-br/library/kx37x362.aspx (Português)
● http://msdn.microsoft.com/en-us/library/67ef8sbd.aspx (Inglês)
● C# Language Specification 5.0, disponível em http://www.microsoft.com/en-us/download/details.aspx?id=7029
![Page 65: Surgimento do C#vitorsouza/archive/2020/wp-content/uploads/teachi… · Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda](https://reader034.vdocuments.site/reader034/viewer/2022051904/5ff5a2a0dc058c40cf05f818/html5/thumbnails/65.jpg)