Saya seorang programmer Python yang belajar C # yang mencoba berhenti khawatir dan hanya suka C # untuk apa itu, daripada terus-menerus membandingkannya kembali ke Python.
Saya terjebak pada satu titik: kurangnya kesaksian tentang di mana hal-hal didefinisikan, sebagaimana dirinci dalam pertanyaan Stack Overflow ini . Singkatnya: di C #, using foo
tidak memberi tahu Anda nama dari foo
apa yang tersedia, yang analog dengan from foo import *
Python - bentuk yang tidak disarankan dalam budaya pengkodean Python karena tersirat daripada pendekatan yang lebih eksplisit dari from foo import bar
.
Saya agak terkejut oleh jawaban Stack Overflow untuk titik ini dari programmer C #, yang dalam prakteknya kurangnya kesederhanaan ini tidak terlalu penting karena dalam IDE Anda (mungkin Visual Studio), Anda dapat mengarahkan kursor ke nama dan diberi tahu oleh sistem dari mana nama itu berasal. Misalnya:
Sekarang, secara teori saya menyadari ini berarti ketika Anda sedang mencari dengan editor teks, Anda tidak dapat mengetahui dari mana jenis-jenis itu berasal dari C # ... tetapi dalam praktiknya, saya tidak menemukan itu menjadi masalah. Seberapa sering Anda benar-benar melihat kode dan tidak dapat menggunakan Visual Studio?
Ini wahyu bagiku. Banyak programmer Python lebih suka pendekatan editor teks untuk pengkodean, menggunakan sesuatu seperti Sublime Text 2 atau vim, di mana itu semua tentang kode, ditambah alat-alat baris perintah dan akses langsung dan manipulasi folder dan file. Gagasan untuk bergantung pada suatu IDE untuk memahami kode pada tingkat dasar seperti itu tampaknya merupakan kutukan. Tampaknya budaya C # secara radikal berbeda pada titik ini. Dan saya bertanya-tanya apakah saya hanya perlu menerima dan menerima itu sebagai bagian dari pembelajaran saya tentang C #.
Yang mengarahkan saya ke pertanyaan saya di sini: apakah pengembangan C # secara efektif tidak dapat dipisahkan dari IDE yang Anda gunakan?
using MyType = MyNamespace.MyType;
?
global::
dan bekerja dengan cara Anda dari sana. using
tidak menyediakan apa pun yang sebelumnya tidak tersedia; itu hanya membuatnya lebih mudah diakses (seperti dalam mengetik kurang diperlukan untuk menggunakan kelas tertentu).