Sunteți pe pagina 1din 13

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

C Sharp
Origem: Wikipdia, a enciclopdia livre.

C# (l-se "c xarpe"), uma linguagem de


programao interpretada multi-paradigma
fortemente tipada, e, possuindo paradigmas de
programao imperativa, funcional, declarativa,
orientada a objetos e generica C# foi desenvolvida
pela Microsoft como parte da plataforma .NET. A
sua sintaxe orientada a objetos foi baseada no C++
mas inclui muitas inuncias de outras linguagens
de programao, como Object Pascal e Java. A
linguagem C# compilada para bytecode e
interpretada pela mquina virtual Common
Language Runtime (CLR).

C#
Paradigma

Orientao a objetos
estruturado
imperativo

Surgido em

2001

ltima
verso

6.0

Criado por

Microsoft

Estilo de
tipagem:

esttica e dinmica, forte,


segura e insegura

(20 de julho de 2015)

Compiladores .NET Framework, Mono,


DotGNU

ndice
1 Histria
2 Etimologia
3 Caractersticas
3.1 Principais caractersticas do C#
4 Tipos de dados
5 Classes
5.1 Classe Console
5.2 Classe Convert
6 Propriedades
7 Mtodos
8 Delegates
9 Passagem de parmetros
10 Namespace
11 Enum
12 Interface
13 Iterador
14 Recursos Visual Studio
15 Principais comandos
16 Colees
17 Exceptions Excees
18 Escrevendo um programa
19 Compilando o cdigo
20 Herana
21 Coleta de lixo
22 Exemplos de cdigo
23 Bibliotecas
24 Ver tambm
25 Referncias
26 Ligaes externas

Dialetos:

Inuenciada
por

Java,[1] C++, Eiel,


Modula-3, Object Pascal[2]

Inuenciou

D, F#, Fantom, Java 5,[3]


Nemerle, Vala

Licena:

Domnio pblico / CLR


Proprietria

Pgina ocial msdn.microsoft.com


(http://msdn.microsoft.com
/pt-br/vcsharp
/default.aspx)

Histria
1 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

A linguagem C# faz parte do conjunto de ferramentas


oferecidas na plataforma .NET e surge como uma linguagem
simples, robusta, orientada a objetos, fortemente tipada e
altamente escalvel a m de permitir que uma mesma
aplicao possa ser executada em diversos dispositivos de
hardware, independentemente destes serem PCs, handhelds
ou qualquer outro dispositivo mvel.
O avano das ferramentas de programao e dos dispositivos
eletrnicos inteligentes, criou problemas e novas exigncias.
As novas verses de componentes compartilhados eram
incompatveis com o software antigo. Os desenvolvedores
reconheceram a necessidade de software que fosse acessvel
para qualquer um e disponvel por meio de praticamente
qualquer tipo de dispositivo. Para tratar dessas necessidades,
a Microsoft anunciou sua iniciativa .NET e a linguagem de
programao C#.[4]
Durante o desenvolvimento da plataforma .NET, as bibliotecas
Anders Hejlsberg - criador do
foram escritas originalmente numa linguagem chamada
C#.
Simple Managed C (SMC), que tinha um compilador prprio.
Mas, em Janeiro de 1999, uma equipe de desenvolvimento foi
formada por Anders Hejlsberg, que fora escolhido pela Microsoft para desenvolver a
linguagem. D-se inicio criao da linguagem chamada Cool. Um pouco mais tarde, em
2000, o projeto .NET era apresentado ao pblico na Professional Developers Conference
(PDC), e a linguagem Cool fora renomeada e apresentada como C#.
A criao da linguagem, embora tenha sido feita por vrios programadores, atribuda
principalmente a Anders, hoje um Distinguished Engineer na Microsoft. Ele fora o arquiteto
de alguns compiladores da Borland, e entre suas criaes mais conhecidas esto o Turbo
Pascal e o Delphi.
A Microsoft submeteu o C# ECMA para uma padronizao formal. Em Dezembro de 2001 a
associao liberou a especicao ECMA-334 Especicao da Linguagem C#. Em 2003
tornou-se um padro ISO (ISO/IEC 23270). H algumas implementaes em
desenvolvimento, destacando-se a Mono, implementao open source da Novell, o dotGNU e
o Portable.NET, implementaes da Free Software Foundation, e o BDS 2008,
implementao da CodeGear.

Etimologia
Pensava-se que o nome "C#" viria duma sobreposio de quatro smbolos +,
dando a impresso de ++++, uma aluso continuao do C++. Entretanto, a
cerquilha de "C#" se refere ao sinal musical sustenido (, em ingls: sharp),
que aumenta em meio tom uma nota musical.[5]
Porm, devido a limitaes tcnicas (fontes padres, navegadores, etc) e o fato
do smbolo no estar presente nos teclados, o cerquilha (#) foi escolhido para
ser usado no nome escrito.[6] Essa conveno reetida no ECMA-334 C#
Language Specication, a especicao tcnica da linguagem.[7] Entretanto,
em determinados lugares, como em propagandas e capas de livros, usado o
smbolo de sustenido.[8]

A nota d
sustenido
em clave
de sol.

Caractersticas
O C# uma linguagem de programao visual dirigida por eventos e totalmente orientada a

2 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

objetos. Permite um novo grau de intercmbio entre linguagens (componentes de software


de diferentes linguagens podem interagir). Os desenvolvedores podem empacotar at
software antigo, para trabalhar com novos programas C#. Alm disso, os aplicativos C#
podem interagir pela Internet usando padres do setor, como SOAP (protocolo de acesso a
objetos simples) e XML (linguagem de marcao extensvel).
O C# tem razes em C, C++ e Java, adaptando os melhores recursos de cada linguagem e
acrescentando novas capacidades prprias. Ele fornece os recursos que so mais
importantes para os programadores, como programao orientada a objetos,strings,
elementos grcos, componentes de interface com o usurio grca (GUI), tratamento de
excees, mltiplas linhas de execuo, multimdia (udio, imagens, animao e vdeo),
processamento de arquivos, estruturas de dados pr-empacotadas, processamento de banco
de dados, redes cliente/servidor com base na Internet e na World Wide Web e computao
distribuda.

Principais caractersticas do C#
Dentre as caractersticas essenciais do C# podemos citar:
Simplicidade: os projetistas de C# costumam dizer que essa linguagem to poderosa
quanto o C++ e to simples quanto o Visual Basic;
Completamente orientada a objetos: em C#, qualquer varivel tem de fazer parte de
uma classe;
Fortemente tipada: isso ajudar a evitar erros por manipulao imprpria de tipos e
atribuies incorretas;
Gera cdigo gerenciado: assim como o ambiente .NET gerenciado, assim tambm o
C#;
Tudo um objeto: System.Object a classe base de todo o sistema de tipos de C#;
Controle de verses: cada assembly gerado, seja como EXE ou DLL, tem informao
sobre a verso do cdigo, permitindo a coexistncia de dois assemblies homnimos, mas
de verses diferentes no mesmo ambiente;
Suporte a cdigo legado: o C# pode interagir com cdigo legado de objetos COM e
DLLs escritas em uma linguagem no-gerenciada;
Flexibilidade: se o desenvolvedor precisar usar ponteiros, o C# permite, mas ao custo
de desenvolver cdigo no-gerenciado, chamado unsafe;
Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente
gerenciado, o que signica que todo o gerenciamento de memria feito pelo runtime
via o GC (Garbage Collector).[9]

Tipos de dados
Os tipos de dados em C# so tipos de valor ou tipos de referncia. Uma varivel de tipo de
valor contm dados desse tipo. Uma varivel de tipo de referncia contm o endereo da
localizao na memria em que os dados esto armazenados. Os tipos de valor normalmente
representam dados simples, como valores int ou bool. Os tipos de referncia, por outro lado,
se referem a objetos, os quais podem conter muitos dados individuais. Os tipos de valor
internos so os tipos integrais, os tipos de ponto utuante e os tipos decimal e bool. Os tipos
de referncia internos so string e object. Os programadores tambm podem criar tipos de
valor e tipos de referncia. Os tipos de referncia que os programadores podem criar so
classes, interfaces e delegados. Existem dois tipos de converses no C#: implcita e explcita.
Segundo seu escopo e disponibilidade, as variveis podem ser do tipo Static (o valor ca
disponvel para todos os objetos da classe em que a varivel foi declarada), Instance (criada
na memria cada vez que instanciamos um novo objeto) e Array (grupo de elementos do
mesmo tipo de dado).

3 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

Classes
Em C#, a unidade de programao a classe. Os objetos so eventualmente instanciados
(criados) dessas classes, e as funes so encapsuladas dentro dos limites das classes
como mtodos. Denies de classe C# no necessitam de arquivos de cabealho ou
arquivos separados (IDL, Denition Language). Tambm permite interfaces, um meio de
fazer um contrato com uma classe para processos que a interface determina. No C#, uma
classe pode herdar de apenas um objeto pai (parent), mas uma classe pode implementar
mltiplas interfaces. C# proporciona tambm um suporte a structs (estruturas). C#
proporciona suporte total de delegates (delegados): para invocao de mtodos
indiretamente. Delegates so referncia de tipos seguros que encapsulam mtodos com
assinaturas e tipos de retorno especcos.[10]

Classe Console
A classe Console, do namespace System, fornece suporte bsico para leitura e escrita de
caracteres. Os principais mtodos usados para essas funcionalidades so:
Write:

escreve uma informao especca em tela.


escreve uma informao especca em tela e pula uma linha em seguida.
ReadLine: captura uma linha de texto digitada pelo usurio e retorna seu valor na forma
de string.
ReadKey: captura um nico caractere digitado pelo usurio. O retorno desse mtodo um
objeto da classe ConsoleKeyInfo, que contm informaes sobre a tecla digitada pelo
usurio.
Clear: esse mtodo limpa toda a tela do console. til para programas que exigem
formatao dos resultados.
WriteLine:

Classe Convert
Ao utilizar o mtodo ReadLine student da classe Console, obtemos informao do usurio no
formato string. Muitas vezes precisamos converter o texto lido para outro tipo. Neste caso,
podemos usar a Classe Convert, que fornece diversos mtodos para converso entre os tipos
bsicos de dados. Exemplo:
int num;
string texto = 2;
num = Convert.ToInt32 (texto);

Propriedades
Uma propriedade o atributo de uma classe (o tamanho de uma string, por exemplo).
Propriedades no denotam localizaes de armazenamento mas contm declaraes
executveis que so usadas para ler ou escrever o valor da propriedade. As propriedades
podem ser dos tipos:

static: usamos o modicador static. No podemos nos referir a uma propriedade static
usando this. Usamos apenas seu nome.
instance: a propriedade padro.
Os acessores das propriedades so declaraes executveis que leem ou escrevem o valor de
uma propriedade. So eles o get ( um mtodo sem nenhum parmetro que retorna o valor
da propriedade) e set (mtodo que atribui o valor em uma propriedade).

Mtodos
4 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

Mtodo um membro de uma classe que permite implementar uma ao. Consiste de um
cabealho (contm um atributo, um modicador, um tipo de retorno, um nome do membro e
uma lista formal de parmetros) e um corpo (bloco de declaraes). O C# inclui 8
modicadores: [11]
new

O modicador new em um mtodo indica que o mtodo


derivado planejado para esconder o mtodo base

public

usado para garantir que um mtodo acessado por todas


as classes sem qualquer restrio

static

O modicador static indica que o mtodo pertence somente


ao tipo static e no pode referir-se a mtodos non-static ou variveis em uma classe

virtual

usado quando a implementao de um mtodo pode ser mudada por classes


derivadas

sealed

Em um mtodo, previne uma classe derivada sobrescrever um mtodo

override

usado para modicar um mtodo de uma classe base na classe derivada

abstract

Em um mtodo, indica que o mtodo no contm implementao

extern

Indica que o mtodo implementado externamente

Os mtodos da classe Math permitem que o programador efetue certos clculos matemticos
comuns. Os mtodos so chamados escrevendo-se o nome do mtodo, seguido de um
parntese de abertura, do argumento (ou uma lista de argumentos separados por vrgulas)
do mtodo e um parntese de fechamento. Exemplo: para calcular e imprimir a raiz
quadrada de 900.0 podemos escrever:
Console.WriteLine ( Math.Sqrt ( 900.0 ) ) ;

O C# permite que vrios mtodos de mesmo nome sejam denidos na mesma classe, desde
que esses mtodos tenham diferentes conjuntos de parmetros (nmero, tipos ou ordem dos
parmetros). Isso chamado sobrecarga de mtodos. Quando um mtodo sobrecarregado
chamado, o compilador C# seleciona o mtodo correto examinando o nmero, os tipos e a
ordem dos argumentos da chamada.

Delegates
um elemento que permite que voc faa referncia a um mtodo. semelhante a um
ponteiro de funo, mas sua diferena se baseia em ser totalmente orientado a objetos
encapsulando a instncia de mtodo ou objecto.[12]
O objeto de delegao pode ser passado para o cdigo que pode chamar o mtodo
referenciado sem ter que saber em tempo de compilao qual mtodo ser chamado. Usando
delegates voc tem a exibilidade para implementar qualquer funcionalidade em tempo de
execuo. A nica restrio que o mtodo seja compatvel com o tipo de declarao do
delegate, usando assim perfeitamente invocao annima. Delegates possuem a seguintes
propriedades:
So como Ponteiros em C++, mas so do tipo seguro;
Permitem mtodos para serem passados por parmetros;
Podem ser usados para denir mtodos callback.[13]
Exemplo:
// Declare delegate -- defines required signature:

5 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

delegate double MathAction (double num);


class DelegateTest
{
// Regular method that matches signature:
static double Double(double input)
{
return input * 2;
}
static void Main()
{
// Instantiate delegate with named method:
MathAction ma = Double;
// Invoke delegate ma:
double multByTwo = ma(4.5);
Console.WriteLine("multByTwo: {0}", multByTwo);
// Instantiate delegate with anonymous method:
MathAction ma2 = delegate(double input)
{
return input * input;
};

double square = ma2(5);


Console.WriteLine("square: {0}", square);
// Instantiate delegate with lambda expression
MathAction ma3 = s => s * s * s;
double cube = ma3(4.375);
Console.WriteLine("cube: {0}", cube);

//
//
//
//
}

}
Output:
multByTwo: 9
square: 25
cube: 83.740234375

Passagem de parmetros
Os tipos de parmetros so quatro:
valor: corresponde a uma varivel local que recebe seu valor inicial do argumento
fornecido quando um mtodo chamado. Isto acontece porque um parmetro de valor
declarado em um mtodo refere-se localizao da memria diferente daquela do
argumento chamado em um mtodo.
referncia: um parmetro declarado com o modicador ref chamado de parmetro de
referncia. Diferente do parmetro de valor, o parmetro de referncia no cria uma
nova localizao na memria. Refere-se mesma localizao de memria do argumento
chamado em um mtodo.
sada: um parmetro declarado com o modicador out um parmetro de sada.
Parmetros de sada so usados em mtodos que retornam vrios valores. Refere-se
mesma localizao de memria do argumento chamado em um mtodo. necessrio
atribuir um parmetro de sada antes do mtodo retornar um valor.
params: um parmetro params pode ser um array de nica dimenso ou um array de
vrias dimenses.

Namespace
A palavra-chave de namespace usada para declarar um escopo que contm um conjunto de
objetos relacionados. Voc pode usar um namespace para organizar elementos de cdigo e
para criar globalmente tipos exclusivos.[14] [15] [16] [17] [18]

Namespaces possuem as principais propriedades:


Usados para organizar cdigos de grandes projetos;
A diretiva using evita a necessidade de especicar o nome para cada classe;

6 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

H sempre um namespace global que faz referncia ao namespace System do


.Netframework.

Enum
Enum em C# usado para declarar uma enumerao, um tipo distinto que consiste em um
conjunto de constantes nomeados lista de enumerador.
Usados geralmente dentro de namespace para ser visvel para acesso das classes e usados
dentro de classes e structs, sendo considerados constantes numricas.
Por caracterstica comea com 0 mas pode ser inicializado com outro valor.
No devem conter espao em branco em seu nome. E principalmente: se for atribudo a uma
varivel, deve ser feita uma converso explcita do tipo enum para o tipo da varivel tratada.
Exemplo:
public class EnumTest2
{
enum Range : long { Max = 2147483648L, Min = 255L };
static void Main()
{
long x = (long)Range.Max;
long y = (long)Range.Min;
Console.WriteLine("Max = {0}", x);
Console.WriteLine("Min = {0}", y);
}
}
/* Sada:
Max = 2147483648
Min = 255
*/

Interface
Interfaces pertencem aos tipos de referncia, em que denem contratos que so
implementados por uma classe ou estrutura (que a utiliza para simular herana j que no
oferece suporte para herdar outra estrutura). Uma classe pode implementar mltiplas
interfaces.[19] [20]
Uma Interface pode conter mtodos, propriedades, eventos e indexadores, mas no pode
implementar seus mtodos.
Principais Propriedades:
Uma interface como uma classe base abstrata. Qualquer classe ou estrutura que
implementa a interface deve implementar todos os seus membros;
Uma interface no pode ser instanciada diretamente. Seus membros so implementados
por qualquer classe ou estrutura que implementa a interface;
Interfaces podem conter eventos, indexadores, mtodos, propriedades;
As interfaces no contm qualquer implementao dos mtodos;
Uma classe ou estrutura pode implementar interfaces mltiplas. Uma classe pode
herdar uma classe base e tambm implementar uma ou mais interfaces.
interface ISampleInterface
{
void SampleMethod();
}
class ImplementationClass : ISampleInterface
{
// implementao explcita do membro da interface:

7 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

void ISampleInterface.SampleMethod()
{
// Implementao do Mtodo.
}
static void Main()
{
// Instncia da interface.
ISampleInterface obj = new ImplementationClass();
// Chamada do membro.
obj.SampleMethod();
}
}

Iterador
Iteradores so utilizados para percorrer uma coleo de dados como uma lista.
O mtodo iterator um get personalizado para colees, em C# usa-se a declarao de
produzir retorno de um elemento de cada vez, como o operador yield return recordando o
local atual do cdigo e retornando a executar no mesmo local para a prxima iterao.
Por meio do foreach um iterator pode retornar mais de um valor at o m do bloco ou
quando o comando yield break for encontrado. Seus tipos de retorno mais usados so:
IEnumerable, IEnumerable<T>, IEnumerator ou IEnumerator<T>.
Exemplo:
static void Main()
{
foreach (int number in SomeNumbers())
{
Console.Write(number.ToString() + " ");
}
// Sada: 3 5 8
Console.ReadKey();
}
public static System.Collections.IEnumerable SomeNumbers()
{
yield return 3;
yield return 5;
yield return 8;
}

Recursos Visual Studio


Sendo a principal IDE de desenvolvimento C# junto ao .NetFramework para compilao dos
projetos, a IDE foi evoluindo junto linguagem, dando suporte para desenvolvimento de
outras linguagens como VB, C++, ASP.NET, e arquivos de sistemas DLLs.
C# 1.2 trouxe junto com a atualizao do .NetFramework 1.1 a possibilidade de
desenvolvimento mobile por meio de recursos ASP.NET, o que foi a primeira grande mudana
da linguagem.

Principais comandos
if:

executa um bloco de cdigo com base no valor de uma expresso booleana;


transfere o controle para uma estrutura de comandos que identicada por um
rtulo;
while: executa condicionalmente o cdigo dentro do bloco while zero ou mais vezes;
do...while: executa condicionalmente o cdigo dentro do do uma ou mais vezes;
for: seu uso recomendado quando sabemos a quantidade de repeties que devemos
mostrar no console;
goto:

8 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

foreach:

percorre cada um dos elementos de um array (ou qualquer classe que


implementa IEnumerable);
switch: executa o bloco de cdigo que associado com o valor da expresso de controle.

Colees
Colees so grupos de objetos de tipos semelhantes. O gerenciamento da quantidade de
objetos que as compem feito internamente nas colees; por sua vez, quando usamos um
array o seu tamanho precisa ser gerenciado pelo programador. No namespace collections,
encontramos uma srie de colees predenidas a partir das quais podemos criar nossas
prprias colees. Alm disso, neste namespace podemos encontrar a implementao de
estruturas de dados como pilhas, listas, listas ordenadas, las, e todas so implementadas
usando colees. Algumas classes membros do namespace System.Collections:
usa um array cujo tamanho incrementado dinamicamente conforme
necessrio;
CollectionBase: usada como classe para implementar colees fortemente tipadas;
Queue: coleo de objetos que implementa uma la do tipo primeiro a entrar, primeiro a
sair;
SortedList: coleo que implementa uma lista ordenada;
Stack: coleo de objetos que implementa uma pilha (ltimo a entrar, primeiro a sair).
ArrayList:

Exceptions Excees
Excees em C# fornecem uma maneira estruturada, uniforme e segura de manipulao,
tanto em nvel de sistema e erros condicionais de aplicao. Exceptions em C# so similares
a Excees em C++, mas com algumas importantes diferenas:
Em C#, todas as exceptions representam um instncia de classe derivada de
System.Exception. Em C++, qualquer valor de qualquer tipo pode ser usado para
representar uma exceo.
Em C# o Bloco nally pode ser escrito ao nal do cdigo para executar em ambas as
situaes de exceo ou execuo normal. Em C++ difcil escrever sem duplicar
cdigos.
Excees possuem as principais propriedades:
Um Bloco try em torno de uma instruo pode lanar excees;
Aps a execuo do bloco try, o uxo de controle vai para o primeiro manipulador de
exceo associado que est presente em qualquer lugar na pilha de chamadas. O catch
usado para denir o manipulador de exceo;
Se nenhum manipulador de exceo para uma determinada exceo estiver presente, o
programa apresenta erro.
Excees podem ser explicitamente geradas por um programa usando a palavra-chave
throw.
Exemplo:
static void TestCatch2()
{
System.IO.StreamWritersw = null;
try
{
sw = newSystem.IO.StreamWriter(@"C:\test\test.txt");
sw.WriteLine("Hello");
}
catch (System.IO.FileNotFoundException ex)

9 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

// Put the more specific exception first.


System.Console.WriteLine(ex.ToString());
}
catch (System.IO.IOException ex)
{
// Put the less specific exception last.
System.Console.WriteLine(ex.ToString());
}
finally
{
sw.Close();
}
System.Console.WriteLine("Done");
}

Escrevendo um programa
Um programa em C# contm 4 elementos principais:
uma declarao de namespace: contm as bibliotecas de classe que voc pode usar em
um programa. A diretiva using System especica que o programa pode utilizar a
biblioteca no namespace System.
uma classe: contm as declaraes de dados e mtodos para uma aplicao;
um mtodo Main: semelhante ao C++, todos os programas C# comeam executando o
mtodo Main;
e uma declarao do programa.

Compilando o cdigo
As aplicaes desenvolvidas em C# so baseadas em arquivos (com extenso .cs) contendo o
cdigo-fonte dos programas. Quando voc compila seu cdigo, cria um assembly. Um
assembly uma coleo de arquivos que aparecem ao programador como uma nica DLL,
biblioteca de link dinmico (Dynamic Link Library), ou executvel (EXE). Em .NET, um
assembly a unidade bsica de reutilizao, versionamento, segurana e implantao. O
CLR proporciona um nmero de classes para manipulao de assemblies.

Herana
Um dos principais recursos da programao orientada a objetos a herana. Herana uma
forma de reutilizao de software em que as classes so criadas pela absoro dos dados e
comportamentos de uma classe j existente e aprimorando-as com novos recursos. Ao criar
uma classe, em vez de escrever variveis de instncia e mtodos complementares novos, o
programador pode indicar que a nova classe deve herdar as variveis de classe,
propriedades e mtodos de outra classe. Uma classe derivada mais especca do que sua
classe base e representa um grupo mais especializado de objetos. Normalmente, a classe
derivada contm os comportamentos de sua classe base e comportamentos adicionais. No
caso de herana simples, uma classe derivada de uma nica classe base. Ao contrrio do
C++, o C# no suporta herana mltipla (que ocorre quando uma classe derivada de mais
de uma classe base direta).

Coleta de lixo
O operador new aloca memria para o objeto e, ento, chama o construtor desse objeto. Ao
contrrio do C e do C++, em que os programadores devem gerenciar a memria de maneira
explcita, o C# realiza o gerenciamento de memria internamente. A plataforma .NET realiza
a coleta de lixo da memria para retornar a memria do sistema que no mais necessria.
Quando o coletor de lixo executa, ele localiza os objetos para os quais o aplicativo no tem
referncias. Tais objetos podem ser coletados nesse momento ou durante uma execuo

10 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

subseqente do coletor de lixo. A alocao e liberao de recursos, como conexes de rede,


conexes de banco de dados e arquivos, devem ser manipuladas explicitamente pelo
programador. Uma tcnica empregada em conjunto com o coletor de lixo denir um
destrutor.

Exemplos de cdigo
Segue, abaixo, o programa teste Ol Mundo, que exibe a frase "Ol, Mundo!":
using System;
namespace Teste
{
class OlaMundo
{
static void Main()
{
Console.WriteLine("Ol, Mundo!");
}
}
}

Bibliotecas
Ao contrrio das outras linguagens de
programao, nenhuma implementao de C#
actualmente inclui qualquer conjunto de bibliotecas
de classes ou funes. Mesmo assim, esta
linguagem est muito vinculada plataforma .NET,
da qual obtm as suas classes ou funes de
execuo. O cdigo organizado num conjunto de
espaos de nomes que agrupam as classes com
funes semelhantes. Por exemplo,
System.Windows.Forms contm o sistema Windows
Forms; System.Console usado para entrada/sada de
dados.

Captura de tela do Banshee, um media

Um nvel de organizao superior fornecido pelo


player desenvolvido em C#
conceito de montador, que pode ser um simples
arquivo ou mltiplos arquivos ligados juntos que
podem conter muitos espaos de nomes ou objetos. Programas que precisam de classes para
realizar uma funo em particular podem se referenciar aos montadores como
System.Drawing.dll e System.Windows.Forms.dll assim como a biblioteca core (conhecida como
mscorlib.dll na implementao da Microsoft).

Ver tambm
ASP.NET
Common Language Runtime
Microsoft .NET
Microsoft XNA
Mono (projeto)

Referncias
1. Why Microsoft's C# isn't

11 de 13

(http://news.cnet.com
/2008-1082-817522.html) (em ingls).

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre


Consultado em 26 de agosto de 2010.
2. The A-Z of Programming Languages: C#
(http://www.computerworld.com.au/article
/261958/a-z_programming_languages_c_
/?pp=7) (em ingls). Consultado em 26 de
agosto de 2010.
3. Java 5 catches up with C#
(http://www.barrycornelius.com/papers/java5
/onele/) (em ingls). Consultado em 26 de
agosto de 2010.
4. "C# - Como Programar", H. M. Deitel, So
Paulo: Pearson Education, 2003
5. C#/.NET History Lesson
(http://www.jameskovacs.com
/blog/CNETHistoryLesson.aspx) (em ingls).
Consultado em 24 de agosto de 2011.
6. Microsoft C# FAQ
(http://msdn.microsoft.com/vcsharp/previous
/2002/FAQ/default.aspx) (em ingls).
Consultado em 24 de agosto de 2011.
7. C# Language Specication
(http://www.ecma-international.org
/publications/les/ECMA-ST/Ecma-334.pdf)
(PDF) (em ingls). Consultado em 24 de
agosto de 2011.
8. Visual C#.net Standard
(http://www.microsoft.com/presspass/images
/gallery/boxshots/web/visual-c-sharp03.jpg)
(em ingls). Consultado em 24 de agosto de
2011.
9. "C# e .NET - Guia do Desenvolvedor", Edwin
Lima, Eugnio Reis, Rio de Janeiro: Campus,
2002
10. http://msdn.microsoft.com/pt-br/vstudio
/hh341490 Recursos do Visual C# Pgina
visitada em 29 de Maro de 2013
11. Curso online Bradesco - C#,
http://www.ev.org.br/Paginas/Home.aspx,
pgina visitada em 30/03/13
12. http://msdn.microsoft.com/pt-br/library
/vstudio/618ayhy6 Referncia de C# Pgina

https://pt.wikipedia.org/wiki/C_Sharp
visitada em 30 de Maro de 2013
13. http://msdn.microsoft.com/pt-br/library
/vstudio/900fyy8e.aspx 30/03/13
14. http://msdn.microsoft.com/pt-br/library
/vstudio/67ef8sbd Pgina visitada em 30 de
Maro de 2013
15. http://download.microsoft.com/download
/a/9/e/a9e229b9-fee5-4c3e8476-917dee385062
/CSharp%20Language%20Specication%20v1.0.doc
CSharp Language Specication C# 1.0 (em
ingls) Pgina visitada em 29 de Maro de
2013
16. http://download.microsoft.com/download
/5/e/5/5e58be0a-b02b-41aca4a3-7a22286214
/csharp%20language%20specication%20v1.2.doc
CSharp Language Specication C# 1.2 (em
ingls) Pgina visitada em 30 de Maro de
2013
17. http://download.microsoft.com/download
/9/8/f/98fdf0c7-2bbd40d3-9fd1-5a4159fa8044
/csharp%202.0%20specication_sept_2005.doc
CSharp Language Specication C# 2.0 (em
ingls) Pgina visitada em 30 de Maro de
2013
18. http://www.microsoft.com/en-us/d
ownload/details.aspx?id=7029 CSharp
Language Specication C# 4.0 (em Ingls)
Pgina visitada em 29 de Maro de 2013
19. http://www.microsoft.com/downloads
/details.aspx?displaylang=en&
FamilyID=dfbf523c-f98c-4804afbd-459e846b268e CSharp Language
Specication C# 3.0 (em ingls) Pgina
visitada em 29 de Maro de 2013
20. http://msdn.microsoft.com/pt-br/library
/vstudio/ms228593 CSharp Language
Specication C# 5.0 (em ingls) Pgina
visitada em 30 de Maro de 2013

Ligaes externas
Website ocial (http://msdn.microsoft.com/pt-br/vcsharp/default.aspx) (em portugus)
Visual C# 2010 Express (http://www.microsoft.com/visualstudio/en-us/products/2010editions/visual-csharp-express) (em ingls)
C Sharp (http://www.dmoz.org/Computers/Programming/Languages/C-sharp/) no Open
Directory Project
Obtida de "https://pt.wikipedia.org/w/index.php?title=C_Sharp&oldid=45541317"
Categorias: !Artigos com falha na vericao Microsoft Visual Studio C Sharp
Normas ISO Normas IEC Normas Ecma Linguagens de programao criadas em 2001
Esta pgina foi modicada pela ltima vez (s) 00h07min de 7 de maio de 2016.
12 de 13

12-05-2016 09:12

C Sharp Wikipdia, a enciclopdia livre

https://pt.wikipedia.org/wiki/C_Sharp

Este texto disponibilizado nos termos da licena Creative Commons - Atribuio Compartilha Igual 3.0 No Adaptada (CC BY-SA 3.0); pode estar sujeito a condies
adicionais. Para mais detalhes, consulte as Condies de Uso.

13 de 13

12-05-2016 09:12

S-ar putea să vă placă și