Es ist in .NET wahr, dass alle Typen von System.Object erben.Wie kann System.Object Unterklassen als Rückgabetypen verwenden?
Was finde ich paradox, ist ein paar Methoden auf System.Object - nämlich
- public virtual String ToString();
- öffentlich virtuell bool Gleich (Objekt objA, Objekt objB);
System.String von System.Object geerbt:
[Serializable]
public class String : Object { /*...*/ }
System.Boolean von System.Object vererbt wird:
[Serializable]
public struct Boolean : Object { /*....*/ }
Was unter der Decke die los ist, die erlaubt die System.Object-Klasse, damit Unterklassen als Rückgabetypen für ihre Methoden verwendet werden können? Wie wurde dieser Code jemals kompiliert, da scheint es einen Zirkelbezug zu geben. String < -> Objekt < -> Boolesch.
Ich bin sicher, ich werde Aussagen sehen, auf "so ist es implementiert", aber ich kann verstehen, wenn diese Rückgabetypen waren "System.Object" selbst, und dann eine Unterklasse verwendet die Implementierungen von string, bool und andere System.ValueTypes, um eine neue Basisklasse zu deklarieren.
Ich hoffe, dass das Sinn macht.
Vielen Dank im Voraus,
Dominic
Sie möchten bei http://stackoverflow.com/questions/1316518/how-did-microsoft-create-assemblies-that-have-circular-references einen Blick nehmen, wo es, dass, während Kreis demonstriert Abhängigkeiten werden von der IDE blockiert, sie können mit dem Befehlszeilencompiler (csc.exe) ausgeführt werden. –
Ich meine kreisförmige Abhängigkeiten zwischen Baugruppen ... –