Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
C# e Python compartilham conceitos semelhantes. Essas construções familiares ajudam você a aprender C# quando você já conhece Python.
- Orientação a objetos: Python e C# são linguagens orientadas a objetos. Todos os conceitos em torno de classes em Python se aplicam em C#, mesmo que a sintaxe seja diferente.
- Multiplataforma: Python e C# são linguagens multiplataforma. Os aplicativos escritos em qualquer idioma podem ser executados em muitas plataformas.
- Coleta de lixo: Ambos os idiomas empregam gerenciamento automático de memória por meio da coleta de lixo. O tempo de execução recupera a memória de objetos que não são referenciados.
- Fortemente tipado: Python e C# são linguagens de tipagem forte. A coerção do tipo não ocorre implicitamente. Há diferenças descritas mais tarde, como C# é tipado estaticamente enquanto Python é digitado dinamicamente.
-
Async / Await: Os recursos
async
eawait
do Python foram diretamente inspirados pelo suporteasync
eawait
do C#. -
Correspondência de padrões: A expressão e a correspondência de
match
padrões do Python são semelhantes à expressão de correspondência de padrões do C#. Você os usa para inspecionar uma expressão de dados complexa para determinar se ela corresponde a um padrão. -
Palavras-chave de instrução: Python e C# compartilham muitas palavras-chave, como
if
,else
,while
,for
, e muitas outras. Embora nem toda a sintaxe seja a mesma, há semelhança suficiente para que você possa ler C# se souber Python.
Ao aprender C#, você descobre estes conceitos importantes em que C# é diferente de Python:
-
Indentation vs. tokens: Em Python, newlines e indentation são elementos sintáticos de primeira classe. Em C#, o espaço em branco não é significativo. Tokens, como
;
separar declarações, e outros tokens{
e}
controlam o escopo do bloco paraif
e outras declarações de bloco. No entanto, para facilitar a leitura, a maioria dos estilos de codificação (incluindo o estilo usado nesses documentos) usa recuo para reforçar os escopos de bloco declarados por{
e}
. - Tipagem estática: Em C#, uma declaração de variável inclui o seu tipo. Reatribuir uma variável a um objeto de um tipo diferente gera um erro do compilador. Em Python, o tipo pode mudar quando reatribuído.
- Tipos anuláveis: as variáveis C# podem ser anuláveis ou não anuláveis. Um tipo não anulável é aquele que não pode ser nulo (ou nada). Refere-se sempre a um objeto válido. Por outro lado, um tipo anulável pode se referir a um objeto válido ou null.
-
LINQ: As palavras-chave de expressão de consulta que compõem o Language Integrated Query (LINQ) não são palavras-chave em Python. No entanto, bibliotecas Python como
itertools
,more-itertools
epy-linq
fornecem funcionalidade semelhante. - Genéricos: Os genéricos em C# usam a digitação estática em C# para fazer afirmações sobre os argumentos fornecidos para parâmetros de tipo. Um algoritmo genérico pode precisar especificar restrições que um tipo de argumento deve satisfazer.
Finalmente, existem alguns recursos do Python que não estão disponíveis em C#:
- Tipagem estrutural (duck typing): em C#, os tipos em C# têm nomes e declarações. Com exceção das tuplas, tipos com a mesma estrutura não são intercambiáveis.
- REPL: O C# não tem um Read-Eval-Print Loop (REPL) para prototipar soluções rapidamente.
-
Espaço em branco significativo: você precisa usar corretamente as chaves
{
para anotar o escopo do}
bloco.
Aprender C# se você conhece Python é uma jornada tranquila. As línguas têm conceitos semelhantes e expressões idiomáticas semelhantes para usar.