C# Platzhalter

Status
Für weitere Antworten geschlossen.

Gary12345

Ensign
Registriert
Sep. 2012
Beiträge
246
Hallo,

Zitat aus dem Fachbuch:

Oder Sie fügen in den auszugebenden String durchnummerierte Platzhalter der Form {0},{1} und so weiter ein, die WriteLine() bei der Ausgabe durch die Werte der nachfolgenden Argumente ersetzt:

Console.WriteLine("Das Quadrat von {0} ist {1}" , number, number*number);

Platzhalter bieten zudem die Möglichkeit, das Ausgabeformat von numerischen Werten zu beeinflussen.

Console.WriteLine("Wert von n: {0 : D}",n); //Ausgabe als ganze Zahl
Console.WriteLine("Wert von n: {0 : D2}",n); //Ausgabe als ganze Zahl (mindestens zwei Zeichen, notfalls Leerzeichen

Aber was bedeuted dieses {} genau? Was ist D? Gibt es da einen speziellen Vorgang. Das Buch sagt aber auch, dass in Kapitel 22 mehr erläutert wird, aber ich will einen kleinen Einblick haben, ohne genau die detailtreue Anwendung wissen zu müssen? Hat jemand eine plausible Erklärung parat?

LG
 
Toll... da steht aber was anderes als Console.WriteLine, sondern irgendwas Format.String! Ich will nur wissen, was das in meinem Beispiel zu tun hat.
 
OK , wenn Du das sagst. Den Link, den Du mir gegeben hast, da kapier ich 0. Das ist weit über dem, was ich bisher kann.

Mir geht es, was das in meinem Beispielcode bedeuted. Und das bitte in eigenen Wörtern.

Danke :)
 
Du wirst dich daran gewöhnen müssen, gewisse Dinge am Anfang einfach zu akzeptieren.
Zudem ist es meines Erachtens besser wenn du dich auf einen Thread beschränkst und dir angewöhnst manche Sachen erstmal selbst zu suchen.
Zu genau dieser Thematik gab es erst vor einiger Zeit nen Thread hier...

Das was in dem Link steht beschreibt String Formatierungen.

String.Format() ermöglicht es dir Informationen aus Variablen in einen Text einzufügen. Dafür gibt es den Platzhalter {}, die Zahl gibt die Nummer der Variable an.

Sprich bei String.Format("Text {0}",Variable1); wird an Stelle {0} Variable1 eingefügt.
Bei String.Format("Text {0} {1}",Variable1,Variable2); wird an Stelle {0} Variable1 und an Stelle {1} variable2 eingefügt.

Da Console.WriteLine(); Einen String erwartet, wird implizit String.Format aufgerufen, wenn ein Text und eine Anzahl Variablen übergeben wird.

Explizit ausgeschrieben passiert quasi das:
Console.WriteLine(String.Format("Text {0}", Variable1));
 
So habe ich das auch gewusst: Console.WriteLine("Wert von n: {0 : D}",n); Aber was ist {0: D}?

Das wäre die eigentliche Frage gewesen. Vll blöde Fragestellung. :)
 
Gary12345 schrieb:
Aber was ist {0: D}?

Der Platzhalter ^^

Each format item takes the following form and consists of the following components:

{ index[,alignment][:formatString]}

The matching braces ("{" and "}") are required.
Quelle: MSDN

Wenn du es bis ins kleinste Detail wissen willst, klick.

Du solltest dir MSDN schonmal "bookmarken", wenn du ernsthaft C# lernen willst, wirst du die Seite sehr, sehr oft besuchen ;)
 
Ihr könntet es ihm ja auch mal vernünftig beantworten. Das "D" heißt, (ganze) Dezimalzahl.

Console.WriteLine("Das Quadrat von {0} ist {1}" , number, number*number);
und
Console.WriteLine("Das Quadrat von {0 : D} ist {1 : D}" , number, number*number);

sollten also die gleiche Ausgabe produzieren, mit dem unterschied, dass die zweite Zeile die Zahl auf eine Ganzzahl rundet. (Nicht getestet)
 
F_GXdx schrieb:
Ihr könntet es ihm ja auch mal vernünftig beantworten. Das "D" heißt, (ganze) Dezimalzahl.

Console.WriteLine("Das Quadrat von {0} ist {1}" , number, number*number);
und
Console.WriteLine("Das Quadrat von {0 : D} ist {1 : D}" , number, number*number);

sollten also die gleiche Ausgabe produzieren, mit dem unterschied, dass die zweite Zeile die Zahl auf eine Ganzzahl rundet. (Nicht getestet)

Naja, wer lesen kann ist klar im Vorteil.
Genau so steht es doch in seinem Buch, zumindest in den paar Zeilen, die er zitiert hat ;)
 
sollten also die gleiche Ausgabe produzieren, mit dem unterschied, dass die zweite Zeile die Zahl auf eine Ganzzahl rundet. (Nicht getestet)

Ich habe es so verstanden, dass bei der 2. Ausgabe eine Leerstelle vorangeht, wenn die Zahl kleiner als 10 ist?
 
bei den Beispielen aus dem Buch (D und D2) ist beim zweiten (D2) Beispiel dies auch der Fall, denn die zwei sagt genau das aus.

F_GXdx hat aber zwei andere Beispiele in seinem Beitrag erwähnt und so stimmt seine Aussage dann auch.
 
Genau das wollt ich wissen. Die Websites erklären das kaum. Ähnlich stand es im Buch , finde ich aber zu kompliziert erklärt.


Danke
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben