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

In C # können keine Nicht-Member-Funktionen geschrieben werden, und jede Methode sollte Teil einer Klasse sein. Ich dachte, dass dies eine Einschränkung in allen CLI-Sprachen ist. Aber ich habe mich geirrt und festgestellt, dass C ++ / CLI Funktionen unterstützt, die keine Mitglieder sind. Beim Kompilieren wird die Methode vom Compiler als Mitglied einer unbenannten Klasse definiert.

Folgendes sagt der C ++ / CLI-Standard:

[Hinweis: Funktionen, die keine Mitglieder sind, werden von der CLI als Mitglieder einer unbenannten Klasse behandelt. In C ++ / CLI-Quellcode können solche Funktionen jedoch nicht explizit mit diesem Klassennamen qualifiziert werden. Endnote]

Die Codierung von Nichtmitgliedsfunktionen in Metadaten ist nicht angegeben. [Hinweis: Dies verursacht keine Interop-Probleme, da solche Funktionen nicht öffentlich sichtbar sind. Endnote]

Meine Frage ist also, warum C # so etwas nicht implementiert? Oder denkst du, es sollte keine Nicht-Member-Funktionen geben und jede Methode sollte zu einer Klasse gehören?

Ich bin der Meinung, Unterstützung für Nicht-Mitglieder-Funktionen zu haben und zu vermeiden, dass die Schnittstelle der Klasse verschmutzt wird.

Irgendwelche Gedanken ..?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage