Sou um programador Python aprendendo C # que está tentando parar de se preocupar e adora C # pelo que é, em vez de compará-lo constantemente ao Python.
Estou envolvido em um ponto: a falta de explicitação sobre onde as coisas são definidas, conforme detalhado nesta questão do Stack Overflow . Resumindo: em C #, using foo
não informa de quais nomes foo
estão sendo disponibilizados, o que é análogo ao from foo import *
Python - uma forma desencorajada na cultura de codificação do Python por ser implícita, e não a abordagem mais explícita from foo import bar
.
Fiquei bastante impressionado com as respostas do Stack Overflow a esse ponto dos programadores de C #, que na prática essa falta de explicitação realmente não importa porque no seu IDE (presumivelmente Visual Studio) você pode simplesmente passar o mouse sobre um nome e ser informado por o sistema de onde o nome vem. Por exemplo:
Agora, em teoria, percebo que isso significa que, quando você está procurando com um editor de texto, não pode dizer de onde vêm os tipos em C # ... mas, na prática, não acho que isso seja um problema. Com que frequência você está realmente vendo o código e não pode usar o Visual Studio?
Isso é revelador para mim. Muitos programadores de Python preferem uma abordagem de editor de texto à codificação, usando algo como Sublime Text 2 ou vim, onde tudo se resume ao código, além de ferramentas de linha de comando e acesso direto e manipulação de pastas e arquivos. A idéia de depender de um IDE para entender o código em um nível tão básico parece anátema. Parece que a cultura C # é radicalmente diferente nesse ponto. E me pergunto se só preciso aceitar e abraçar isso como parte do meu aprendizado de C #.
O que me leva à minha pergunta aqui: o desenvolvimento de C # é efetivamente inseparável do IDE que você usa?
using MyType = MyNamespace.MyType;
:?
global::
e trabalhar a partir daí. using
não disponibiliza nada que não era antes; isso facilita o acesso (como em menos digitação necessária para usar uma classe específica).