Why C# is not allowing non-member functions like C++

C # nie pozwoli na pisanie funkcji niebędących członkami, a każda metoda powinna być częścią klasy. Myślałem o tym jako o ograniczeniu we wszystkich językach CLI. Ale myliłem się i odkryłem, że C ++ / CLI obsługuje funkcje nie będące członkami. Po skompilowaniu kompilator uczyni tę metodę członkiem jakiejś nienazwanej klasy.

Oto, co mówi standard C ++ / CLI,

[Uwaga: Funkcje niebędące członkami są traktowane przez CLI jako członkowie jakiejś nienazwanej klasy; jednak w kodzie źródłowym C ++ / CLI takich funkcji nie można jednoznacznie zakwalifikować za pomocą tej nazwy klasy. nota końcowa]

Kodowanie funkcji nie będących członkami w metadanych jest nieokreślone. [Uwaga: nie powoduje to problemów z interopem, ponieważ takie funkcje nie mogą mieć widoczności publicznej. nota końcowa]

Moje pytanie brzmi: dlaczego C # nie implementuje czegoś takiego? Czy może uważasz, że nie powinno być funkcji niebędących członkami, a każda metoda powinna należeć do jakiejś klasy?

Moim zdaniem mam wsparcie funkcji niezwiązanych z członkami i pomaga to uniknąć zanieczyszczania interfejsu klasy.

Jakieś pomysły..?

questionAnswers(2)

yourAnswerToTheQuestion