Grüße!
Habe meine Prüfungsarbeit zurück bekommen und wurde etwas als falsch markiert und wollte euch mal Fragen, was falsch sein soll. Finde da keine Fehler und der Tutor meldet sich ziemlich selten. Darum mal die Frage an euch, ob ihr mal schauen könnt und ich nicht falsch weiter lerne.^^
1. Aufgabe - Vordefinierte Typen aufzeigen, Erklären und sinnvoll ordnen:
Vordefinierte Typen werden immer durch ein klein geschriebenes Schlüsselwort repräsentiert, wie zum Beispiel „string“, „int“ oder „object“. Vordefinierte Typen haben immer einen Alias zu einem echten .NET-Typen.
Übersicht der vordefinierten Typen:
Wertetypen
Numerische
Ganzzahlen mit Vorzeichen (sbyte, short, int, long)
Ganzzahlen ohne Vorzeichen (byte, ushort, uint, ulong)
Gleitkommazahlen (float, double, decimal)
Boolesche (bool)
Char (char)
Referenztypen
String (string)
Object (object)
Übersicht über eine kleine Auswahl vordefinierter Typen mit ihrem Alias:
Vordefinierter Typ - Alias
System.String - string
System.Object - object
System.Int32 - int
System.Int64 - long
Nicht alle Schlüsselwörter die mit Typen zu tun haben gehören zu den vordefinierten Typen. Es gibt noch eine zweite Gruppe, die Gruppe der benutzerdefinierbaren Typen.
Zu ihnen Zählen:
class, interface, array, delagates, struct, enum
Diese Schlüsselwörter dienen der Typendeklaration, Beispiel:
Schlüsselwort - Deklaration
class - Klasse
interface - Interface
struct - Struktur
enum - Enumeration
Antwort: Das sind doch keine konkreten Typen.
2. Aufgabe, Typen erklären:
Ganzzahlen Zahlen
Ganzzahlentypen gibt es sowohl im positiven, als auch im negativen Wertebereich.
Gleitkommazahlen
Gleitkommazahlen können sowohl positiv, als auch negativ sein und sind immer Vorzeichenbehaftet. Gleitkommazahlen zeichnen sich durch ihre hohe Genauigkeit aus. float ist dabei auf 7 Stellen genau, double auf 15 Stellen und decimal auf 29 Stellen. Vorteil von decimal zu double ist zwar die größere Genauigkeit, hat jedoch einen kleinerer Wertebereich als double.
Gleitkommazahlen lassen sich dabei auf verschiedene Arten darstellen. So kann man zum Beispiel die Zahl 123456789 auch Wissenschaftlich mit einem Exponenzialkoeffizienten darstellen.
Alle Wertetypen sind von Value.Type abgeleitet und kennen mit Ausnahme von Boolean die Datenelemente MinValue, Max Value, NegativeInfinity, PositivInfinity, NAN, sowohl Epsilon.
Übersicht:
NegativInfinity (Negativ Unendlich)
|
MinValue (Größter negativer Wert)
|
NegativerWertebereich
|
NAN (Bereich zwichen der kleinsten negativen Zahl und 0, der nicht |
| abgedeckt ist (NAN = Not a Number))
|
0
|
NAN (Bereich zwischen der kleinsten positiven Zahl und 0, der nicht
| abgedeckt ist)
|
Epsilon (Kleinste positive Zahl)
|
Positiver Wertebereich
|
MaxValue(Größter positiver Wert)
|
PositivInfinity (Positiv Unendlich)
Boolescher Typ
Der Boolesche Typ ist ein logischer Typ, der nur zwei Zustände annehmen kann bzw. kennt. Richtig (true) oder Falsch (false).
Char Typ:
Der Char Typ ist ein sehr spezieller Typ. Jedes Zeichen welches man benutzen kann ist einer speziellen Nummer zugeordnet welches sich im Unicode befindet. Der Zeichensatz des Unicode ist 65.536 Zeichen groß und basiert auf dem ASCII-Zeichensatz mit 128 Zeichen bzw. dem ANSI Zeichensatz mit 256 Zeichen. Im Jahre 2001 wurde der nicht mehr ausreichende Char Zeichensatz von 2 Byte auf 4 Byte erhöht, wodurch nun eine Zeichenmenge von ca. 4,3 Milliarden Zeichen möglich ist. Die ersten 128 Zeichen des Unicode Zeichensatzes entsprechen dabei den Zeichen des ASCII-Zeichensatz.
String Typ:
Strings sind Zeichenketten und werden immer in doppelten Anführungszeichen geschrieben. Sie gehören zu den Referenz- bzw. Verweistypen. Strings sind eine Besonderheit bei den Referenz- bzw. Verweistypen. Einmal einen Wert zugewiesen, können Strings nicht mehr verändert werden.
Beispiel:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| string text1, text2;
text1 = „Einen Guten Tag!“ text2 = text1; text1 = „Einen Guten Abend!“
Console.WriteLine(text1); Console.WriteLine(text2);
|
Wie man am Beispiel sieht, Strings können nach ihrer initialisierung nicht mehr verändert werden, sie werden bei jeder Änderung neu erstellt. Sie handeln also untypisch für Referenz- bzw. Verweistypen.
Object Typ
object ist der vordefinierte Alias von System.Object und hat damit die selbe Stellung. object ist der Basis-Typ aller Wertetypen. Demnach kann object auch alle Werte, sämtlicher Typen annehmen.
Beispiel
C#-Quelltext
1: 2: 3:
| object objekt1 = „Guten Tag!“; object objekt2 = 13; object objekt3 = new Luftfahrzeug("LH 200"); |
Ruft man die Methode Get.Object auf erhällt man folgendes:
C#-Quelltext
1: 2: 3:
| System.String; System.Int32; Lektion.1Luftfahrzeuge; |
Wenn eine Variable eines Types in ein Object konvertiert wird, nennt man dies Boxing. Der Wert wird geschachtelt und im Heap Bereich gespeichert, dieser Vorgang ist impliziet. Ein direkter Zugriff auf die Variable ist nicht mehr möglich, sie wurde zu einem Objekt von System.Object. Der geschachtelte Wert muss wieder zum vorschein gebracht werden, will man ihn verwenden. Dieser Vorgang ist expliziet und wird Unboxing genannt. Der Wert wird wieder im Stack gespeichert.
Beispiel:
C#-Quelltext
1: 2: 3: 4:
| int i = 44; object o = i; i = (int)o; |
Antwort: Ihre Lösung enthält die Informationen, die hier gefragt wurden, aber auch eine Menge Infos, die für die Aufgabe nicht relevant und zudem noch falsch sind. Punkte: 25/30
Moderiert von Th69: Titel geändert (war nur "Fehler finden").
Moderiert von Th69: C#-Tags hinzugefügt