| |
- 18 -
Anhang
A
Vergleich zwischen C# und Java
C#
Java
Quellcode und Test
Präprozessor
Nein
Nein
Eine Datei pro öffentl. Klasse
Wahlweise
Ja
Dokumentation im Quellcode
Nein, aber Teil von .NET
Ja
Attribute7
Ja
Nein
Assert
Ja
Ja
Overflow-Test
Für ganzzahlige Typen
Nein
Exceptions spezifizieren
Nein
Teilw. Verpflichtend
Typen und Operatoren
Erzwungene Initialisierung
Ja
Ja
Vorzeichenlose Zahlentypen
Ja
Nein
Aufzählungstypen (enum)
Ja
Nein
Dezimal-Gleitkomma
Ja
Nein
Gleitkommaarithmetik maschinenunabhängig
Nein
Ja
Mehrdimensionale Arrays zur Laufzeit anlegen
Ja
Ja
Grenzenprüfung bei Arrays
Ja
Ja
Zeiger(arithmetik)
Ja (in unsafe-Bereichen)
Nein
Operatoren überladen
Teilweise
Nein
get und set als Zuweisung
Ja (Properties)
Nein
Impl. Konvertierungsoperatoren
Ja
Nein
Objektorientierung
Globale Funktionen
Nein
Nein
Mehrfachvererbung
(Interfaces)
(Interfaces)
Nicht-virtuelle Methoden
Ja
Nein
Virtuelle Methoden explizit überschreiben
Ja
Nein
Kovarianz von Arrays
Ja
Nein
Kovarianz von Rückgabetypen
Nein
Nein
Ressourcen-Verwaltung
Garbage Collector
Ja
Ja
Objektartige Werttypen
Ja
Nein
Automatisch aufrufender Destruktor
Eingeschränkt
Nein
Parameterübergabe
Parameterübergabe per Referenz
Ja
Nein
Variable Parameteranzahl
Ja
Nein
Unveränderliche Parameter und Objekte
Nein
Nein
Reine Eingabe-Parameter per Referenz
Nein
Nein
Reine Ausgabe-Parameter per Referenz
Ja
Nein
7
Entgegen der üblichen Bedeutung handelt es sich bei C# nicht um ein Synonym für field, sondern
um Beschreibungen von Methoden oder Steueranweisungen für den Compiler.
|  |
|
| |
|
|