Du hast es dir selbst beantwortet: C# ist C.NET. Dotnet ist eine von Microsoft entwickelte Konkurrenzplattform zu Java, die genau anders herum ist wie Java: Java ist eine Sprache, die auf vielen Architekturen läuft; Dotnet besteht aus vielen Sprachen, die auf einer Architektur (Windows) laufen. Natürlich bewirbt Microsoft Dotnet als etwas, das überall laufen soll - daß "überall" auch andere Betriebssysteme beinhaltet wird elegant verschwiegen.

Objective-C ist etwas ganz anderes. Beispielsweise wird es zu nativem Maschinencode kompiliert* und kann überall übersetzt werden, wo es die GCC gibt, da diese einen Obj-C-Compiler beinhaltet.


* Ja, ich weiß, daß gcj fast in der Lage ist, einen Großteil aller Java-Programme nativ zu übersetzen. Trotzdem zählt gcj nicht, weil die Sprache für so was nicht entwickelt wurde.