derivados de object. Boxing e Unboxing - conversao de tipos por valor para tipos por referencia Nao. Exige conversao manual. Sim. Structs Nao. Sim. Enum Nao. Sim. Passagem de parametros por referencia Nao. Sim, de duas maneiras: ref para parametros de entrada e saida e out para parametro apenas de saida. Propriedades Nao. Podem ser simuladas com metodos Get/Set, com alguma dificuldade. Sim, diretamente. A criacao de componentes e bastante facilitada. Eventos e Delegates Nao, categoricamente (veja link abaixo). Sim. Um delegate e um ponteiro de funcao orientado a objetos, permitindo a associacao de um evento de uma classe ao codigo de outra de maneira conceitualmente simples e poderosa. Atributos Nao. Sim, permitindo etiquetar o codigo com caracteristicas que sao interrogadas em tempo de execucao atraves de reflection. Ponteiros Nao suportado diretamente, apenas indiretamente atraves de referencias. A principio suporta referencias, mas os ponteiros podem ser usados em codigo inseguro por questoes de performance ou compatibilidade com DLLs. Sobrecarga de operadores Nao. Sim. Operadores de conversao Nao. Sim. Operadores de cast Um, sintaxe semelhante ao C/C++. Dois, um semelhante ao C/C++ e o outro as. Um retorna null e outro dispara exception em casso de erro de conversao. Inteiros sem sinal Nao. Sim. Tipo numerico pouco sujeito a erros de representacao e arredondamento Nao. Sim, o tipo decimal pode ser usado em softwares que nao toleram facilmente erros de arredondamento, como programas de contabilidade Forech: loop para varrer arrays e colecoes Nao. Sim. Campo readonly Nao. Sim. Documentacao integrada em XML Nao. Sim, permitindo que o programador escreva facilmente a documentacao enquanto programa. Este documentacao pode depois ser extraida do fonte ou usada no proprio ambiente de desenvolvimento. Switch com strings Nao. Sim, facilitando o desenvolvimento. Controle sobre estouro de faixa numerica Nao. Sim. As palavras reservadas checked e unchecked permitem mudar o que o programa faz quando ha um estouro de faixa numerica: o checked dispara uma exception; o unchecked nao. Funcoes com numero variavel de parametros Nao. Sim, de forma tipada, com a palavra reservada params. Formas do metodo Main Uma. Quatro. O main pode aceitar um array de strings ou nada; pode retornar inteiro ou nada. Goto Nao. Sim, com a restricao de que nao pode entrar em um bloco. Arquivo executavel independente do namespace Um package Java obrigatoriamente esta associado a um unico arquivo .class. Nao existe relacao direta entre o namespace e a DLL que o implementa, dando mais flexibilidade ao desenvolvedor na hora de quebrar seus projetos em pedacos menores. Especificadores de acesso Quatro. Cinco. O internal, adicional, especifica acesso apenas no mesmo assembly (mesma DLL, a grosso modo). Diretivas de compilacao condicional (#ifdef etc) Nao. Sim. Destrutores Nao, mas o metodo Finalize pode ser usado. Sim. Padronizacao por algum organismo internacional Nao. Duas submissoes da Sun foram posteriormente retiradas. Sim. Submetido e aceito pelo ECMA (http://www.ecma.ch). Chama APIs do Windows e DLLs Nao. Mesmo o suporte nativo de alguns compiladores e extremamente limitado pela falta de ponteiros na linguagem. Sim. Chama objetos COM/COM+ Nao. Sim. Cria objetos COM/COM+ Nao. Sim. Existem alguns pontos importantes por