Ich bin ein Python-Programmierer, der C # lernt und versucht, sich keine Sorgen mehr zu machen und C # einfach so zu lieben, wie es ist, anstatt es ständig mit Python zu vergleichen.
Ich bin in einem Punkt eingeholt: der Mangel an Klarheit darüber, wo Dinge definiert sind, wie in dieser Stapelüberlauf-Frage beschrieben . Kurz gesagt: In C # using foo
wird nicht angegeben, von welchen Namen Namen foo
verfügbar gemacht werden. Dies ist analog zu from foo import *
Python - eine Form, die in der Python-Codierungskultur davon abgeraten wird, implizit und nicht explizit zu sein from foo import bar
.
Ich war ziemlich beeindruckt von den Stack Overflow-Antworten von C # -Programmierern auf diesen Punkt, die besagten, dass in der Praxis diese mangelnde Aussagekraft keine Rolle spielt, da Sie in Ihrer IDE (vermutlich Visual Studio) einfach über einen Namen fahren und sich von ihm erzählen lassen können das System, von dem der Name kommt. Z.B:
Theoretisch ist mir klar, dass Sie bei der Suche mit einem Texteditor nicht wissen können, woher die Typen in C # stammen. In der Praxis ist dies jedoch kein Problem. Wie oft sehen Sie sich tatsächlich Code an und können Visual Studio nicht verwenden?
Dies ist für mich eine Offenbarung. Viele Python-Programmierer bevorzugen einen Texteditor-Ansatz gegenüber der Codierung mit etwas wie Sublime Text 2 oder vim, bei dem alles um den Code sowie Befehlszeilen-Tools und den direkten Zugriff und die Bearbeitung von Ordnern und Dateien geht. Die Idee, von einer IDE abhängig zu sein, um Code auf einer solchen Basisebene zu verstehen, scheint ein Gräuel zu sein. Es scheint, dass die C # -Kultur in diesem Punkt radikal anders ist. Und ich frage mich, ob ich das als Teil meines C # -Lernens akzeptieren und annehmen muss.
Was mich hier zu meiner Frage führt: Ist die C # -Entwicklung tatsächlich untrennbar mit der von Ihnen verwendeten IDE verbunden?
using MyType = MyNamespace.MyType;
?
global::
und sich von dort aus fortbewegen. using
stellt nichts zur Verfügung, was vorher nicht war; Dies macht den Zugriff nur einfacher (da weniger Eingaben erforderlich sind, um eine bestimmte Klasse zu verwenden).