Was ist ein literal in C#?
Habe ich das richtig verstanden das ein literal einfach nur der Inhalt eines Datentyps ist? Zb
String Name="Bob";
Dann ist bob ein literal.
Wenn ich jedoch die Summe aus zwei zahlen bilde die beides variablen sind dann ist Summe kein literal?
int Summe=a+b;
Ist das korrekt? Selbstverständlich wurde a und b vorher mit irgendwelchen werten initialisiert
2 Antworten
![](https://images.gutefrage.net/media/default/user/10_nmmslarge.png?v=1551279448000)
literals sind in deinem kontext einfach code der direkt zu einem bestimmten wert evaluiert bzw. quellcode-repräsentationen eines bestimmten wertes.
wenn du im code 1 schreibst, kriegt das programm den wert 1
wenn du im code "bob" schreibst, kriegt dein programm den wert bob
wenn du true schreibst, kriegt dein programm (in tieferen schichten) den wert 1/true
folglich sind im code nicht-literals, code der nicht im programm direkt zu einem wert evaluiert.
@ code vs "@" literal
var a = true; literal wird genutzt um variable zu initialisieren
der bezeichner a repräsentiert keinen bestimmten wert sondern er referenziert irgendwas im quellcode
"a" hingegen repräsentiert auf code-ebene den buchstaben a
![](https://images.gutefrage.net/media/default/user/10_nmmslarge.png?v=1551279448000)
da du es nicht verstanden hast hab ich meine antwort nochmal bearbeitet
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)
Unter einem Literal versteht man (programmiersprachenabhängig) eine Zeichenfolge, die unabhängig von konkreten Programmen einen ganz bestimmten Datenwert darstellt (aber nicht als Identifier gilt).
In allen Sprachen der C-Familie etwa sind 1.0, aber z.B. auch 1.00, Literale, unter denen die Zahl 1 als Gleitkommazahl zu verstehen ist.
Und wann ist es kein literal? Wenn der Wert errechnet wird? Wie wird ein wert denn indirekt initialisiert?