A linguagem C# foi criada junto com a arquitetura .NET. Embora existam
várias outras linguagens que suportam essa tecnologia (como
VB.NET, C++, J#), C# é considerada a linguagem
símbolo do .NET pelas seguintes razões:

  • Foi criada
    praticamente do zero para funcionar na nova plataforma, sem
    preocupações de compatibilidade com
    código de legado.
  • O compilador C# foi
    o primeiro a ser desenvolvido.
  • A maior parte das
    classes do .NET Framework foram desenvolvidos em C#.

Características
C# (pronuncia-se “cê chárp” em português ou
“cí charp” em inglês) é, de certa
forma, a linguagem de programação que mais
diretamente reflete a plataforma .NET sobre a qual todos os programas
.NET executam. C# está de tal forma ligado a esta plataforma
que não existe o conceito de código
não-gerenciado (
unmanaged code) em C#. Suas estruturas de
dados primitivas são objetos que correspondem a tipos em
.NET. A desalocação automática de
memória por
garbage colletor além de
várias de suas abstrações tais como
classes, interfaces, delegados e exceções
são nada mais que a exposição
explicita recursos do ambiente .NET.
Quando comparada com C e C++, a linguagem é restrita e
melhorada de várias formas incluindo:

  • Ponteiros e
    aritmética sem checagem só podem ser utilizados
    em uma modalidade especial chamada modo inseguro (unsafe mode).
    Normalmente os acessos a objetos é realizada
    através de referências seguras, as quais
    não podem ser invalidadas e normalmente as
    operações aritméticas são
    checadas contra sobrecarga (overflow).
  • Objetos
    não são liberados explicitamente, mas
    através de um processo de coleta de lixo (garbage
    collector
    ) quando não há
    referências aos mesmos, previnindo assim
    referências inválidas.
  • Destrutores
    não existem. O equivalente mais próximo
    é a interface Disposable, que
    juntamente com a construção using block
    permitem que recursos alocados por um objeto sejam liberados
    prontamente. Também existem finalizadores, mas como em Java
    sua execução não é imediata.
  • Como em Java,
    só é permitida a herança simples, mas
    uma classe pode implementar várias interfaces abstratas. O
    objetivo principal é simplificar a
    implementação do ambiente de
    execução.
  • C# é
    mais seguro com tipos que C++. As únicas
    conversões implícitas por default são
    conversões seguras, tais como
    ampliação de inteiros e conversões de
    um tipo derivado para um tipo base. Não existem
    conversões implícitas entre inteiros e
    variáveis lógicas ou
    enumerações. Não existem ponteiros
    nulos (void pointers) (apesar de
    referências para Object serem
    parecidas). E qualquer conversão implícita
    definida pelo usuário deve ser marcada explicitamente,
    diferentemente dos construtores de cópia de C++.
  • A sintaxe para a
    declaração de vetores é diferente (“int[]
    a = new int[5]
    ” ao invés de “int
    a[5]
    “).
  • Membros de
    enumeração são colocados em seu
    próprio espaço de nomes (namespace)
  • C# não
    possui modelos (templates), mas C# 2.0 possui
    genéricos (generics).
  • Propriedades
    estão disponíveis, as quais permitem que
    métodos sejam chamados com a mesma sintaxe de acesso a
    membros de dados.
  • Recursos de
    reflexão completos estão disponíveis

Apesar de
C# ser freqüentemente tido como similar a Java, existem uma
série de diferenças importantes, tais como:

  • Java não
    implementa propriedades nem sobrecarga de operadores.
  • Java não
    implementa um modo inseguro que permita a
    manipulação de ponteiros e aritmética
    sem checagem.
  • Java possui
    exceções checadas, enquanto
    exceções em C# são não
    checadas como em C++.
  • Java não
    implementa o goto como estrutura de controle, mas
    C# sim.
  • Java utiliza-se de
    comentários Javadoc para gerar
    documentação automática a partir de
    arquivos fonte. C# utiliza comentários baseados em XML para
    este propósito.
  • C# suporta
    indexadores e delegados.

Fonte:

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

em 27 de Março de 2007, à 01:07am
Só para completar um pouco essa parte “teórica”,
vale dizer que a Microsoft está desenvolvendo uma
extensão do C#, chamado de CÔmega. O projeto ainda
está bem inicial, mas pode ser conferido em: http://research.microsoft.com/Comega/

0 Respostas para “História da Linguagem”



  1. Sem comentários ainda

Deixe uma resposta




Browse Happy logo

 

Dezembro 2009
D S T Q Q S S
« Jun    
 12345
6789101112
13141516171819
20212223242526
2728293031