С# не позволяет писать функции, не являющиеся членами, и каждый метод должен быть частью класса. Я рассматривал это как ограничение на всех языках CLI. Но я был не прав, и я обнаружил, что С++/CLI поддерживает функции, не являющиеся членами. Когда он компилируется, компилятор сделает этот метод членом какого-либо неназванного класса.
Вот что говорит стандарт С++/CLI,
[Примечание. Функции, не являющиеся членами, обрабатываются CLI как члены некоторого неназванного класса; однако в исходном коде С++/CLI такие функции не могут быть явно указаны с этим именем класса. end note]
Кодирование функций, не являющихся членами в метаданных, не определено. [Примечание. Это не вызывает проблем с взаимодействием, поскольку такие функции не могут иметь видимость общественности. end note]
Итак, мой вопрос: почему С# не реализует что-то вроде этого? Или вы считаете, что не должно быть функций, не являющихся членами, и каждый метод должен принадлежать к некоторому классу?
Мое мнение состоит в том, чтобы поддерживать функции, отличные от членов, и помогает избежать загрязнения класса.
Любые мысли..?