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 ..?