Roadmap para desenvolvedores Python aprendendo C#
C# e Python compartilham conceitos semelhantes. Essas construções familiares ajudam você a aprender C# quando você já conhece Python.
- Orientado 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 fortemente tipadas. 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: Python e
async
await
recurso foi diretamente inspirado em C#async
eawait
suporte. - 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ênciaswitch
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 começar a aprender C#, você aprenderá 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
;
instruções separadas, e outros tokens{
e}
escopo de bloco de controle paraif
e outras instruçõ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}
. - Digitação estática: em C#, uma declaração de variável inclui 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#:
- Digitação estrutural (pato): em C#, os tipos 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 e
}
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.
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.