Я програміст Python, який навчається C #, який намагається перестати хвилюватися і просто люблю C # за те, що він є, а не постійно порівнює його назад з Python.
Мене наздогнало одне питання: відсутність чіткості про те, де визначені речі, як це детально описано в цьому запитанні про переповнення стека . Коротше кажучи: у C # using foo
не foo
вказано, з яких імен вони стають доступними, що є аналогом from foo import *
у Python - форми, яка не перешкоджає культурі кодування Python бути неявним, а не більш чітким підходом from foo import bar
.
Мене дуже вразили відповіді на програму програмування C # на програму C #, яка полягала в тому, що на практиці ця відсутність явності насправді не має значення, оскільки у вашій IDE (імовірно Visual Studio) ви можете просто навести курсор на ім’я та повідомити його система, звідки походить назва. Наприклад:
Тепер, теоретично, я розумію, що це означає, коли ви шукаєте текстовий редактор, ви не можете сказати, звідки беруться типи в C # ... але на практиці я не вважаю це проблемою. Як часто ви переглядаєте код і не можете використовувати Visual Studio?
Це одкровення для мене. Багато програмістів Python віддають перевагу підходу текстового редактора до кодування, використовуючи щось на кшталт Sublime Text 2 або vim, де все стосується коду, плюс інструменти командного рядка та прямий доступ та маніпулювання папками та файлами. Ідея бути залежною від IDE для розуміння коду на такому базовому рівні видається анафемою. Здається, культура C # докорінно відрізняється. І мені цікаво, чи мені просто потрібно прийняти та прийняти це як частину мого вивчення C #.
Що призводить мене до мого питання тут: чи розробка C # невіддільна від IDE, який ви використовуєте?
using MyType = MyNamespace.MyType;
:?
global::
і працювати звідти. using
не дає нічого доступного, що не було раніше; це лише полегшує доступ (як при меншому наборі тексту, необхідному для використання певного класу).