Ein ehemaliger Kollege schrieb das:
%Vor%Ich habe Artikel wie diese gelesen
Code Project - Benutzerdefinierte String-Formatierung in .NET
< a href="http://msdn.microsoft.com/en-us/library/0c899ak8(v=vs.110).aspx"> MSDN - Benutzerdefinierte Zahlenformatzeichenfolgen
Aber ich verstehe es immer noch nicht, wie dieses Format funktioniert. Natürlich kann ich die Ausgabe sehen, aber ich verstehe diesen Teil {0:#;;}
und den zweiten nicht. Ich möchte das gleiche für die Angabe von Alter (Jahr, Jahre ...) tun.
Ich bin sehr gespannt auf dieses String-Format. Kann jemand dieses Verhalten erklären? Der Autor arbeitet nicht mehr mit uns.
Dies ist eine benutzerdefinierte numerische Format-Zeichenfolge im Grunde - aber um ehrlich zu sein, ein ziemlich seltsamer. In der Tat sind es zwei von ihnen:
%Vor%In jedem Fall haben Sie drei Abschnitte, weil Sie zwei haben Section Separators (die Semikolons):
Der erste Abschnitt gilt für positive Werte, der zweite Abschnitt gilt für negative Werte und der dritte Abschnitt gilt für Nullen.
Ihre Situation wird noch komplizierter, wenn der Entwickler rows - 1
als Wert verwendet, der von der zweiten Formatzeichenfolge formatiert werden soll, also ist es wirklich:
records
wenn rows
größer als 1 ist (also rows - 1
ist positiv) no records
wenn rows
gleich 0 ist (also rows - 1
ist negativ) record
wenn rows
gleich 1 ist (also rows - 1
ist Null) Und die erste Formatzeichenfolge only enthält den Wert von rows
(aufgrund von #
), wenn rows
positiv ist. Das Gesamtergebnis ist also:
Persönlich hätte ich entweder einen bedingten Operator dafür verwendet, oder wenn / else-Anweisungen - die Verwendung einer benutzerdefinierten numerischen Format-Zeichenfolge ist auf die schlechteste Weise "clever" ...
Tags und Links c# formatting string.format