14 Stimmen

C#: lesbarste String-Verkettung. beste Praxis

重複の可能性あり。
Wie sollte ich Zeichenketten verketten?

Es gibt mehrere Möglichkeiten, Zeichenketten in alltäglichen Aufgaben zu verketten, wenn die Leistung ist nicht wichtig .

  • result = a + ":" + b
  • result = string.Concat(a, ":", c)
  • result = string.Format("{0}:{1}", a, b);
  • StringBuilder approach
  • ... ?

was bevorzugen Sie und warum, wenn die Effizienz keine Rolle spielt, aber Sie den Code für Ihren Geschmack möglichst lesbar halten wollen?

1voto

Arseny Punkte 7141
  • string.Format

    für wenige concats. für mehr verwende ich

  • StringBuilder-Ansatz

auch wenn die Leistung nicht wichtig ist. Es gibt eine Teamvereinbarung, an die ich mich halten muss

1voto

mattmc3 Punkte 16673

Ich bevorzuge String.Format für kleine Zeichenketten, und StringBuilder für größere Zeichenketten. Mein Hauptgrund ist die Lesbarkeit. Für mich ist es viel lesbarer, String.Format (oder StringBuilder.AppendFormat()) zu verwenden, aber ich muss zugeben, dass das nur eine persönliche Vorliebe ist.

Für die Generierung wirklich großer Texte sollten Sie die neuen (VS2010) T4 Preprocessed Templates in Betracht ziehen - sie sind wirklich gut.

Wenn Sie jemals mit VB.NET arbeiten, mag ich auch die XML-Literaltechnik, über die Kathleen Dollard in Folge 152 von hanselminutes .

1voto

abatishchev Punkte 94886

Bevorzugt zu verwenden:

String.Concat für einfache Verkettungen wie String.Concat("foo", bar);

String.Format für komplexe Formatierungen wie String.Format("<a href=\"{0}\">{1}</a>", url, text);

StringBuilder für massive Verkettungen wie:

var sb = new StringBuilder();
sb.AppendLine("function fooBar() {");
sp.AppendLine(String.Join(Environment.NewLine, blah));
sp.AppendLine("}");
page.RegisterClientScript(page.GetType(), sb.ToString());

Bevorzugen zu vermeiden "foo" + "bar" (sowie if (foo == "bar") . Und vor allem String.Format("{0}{1}", foo, bar) et

throw new Exception("This code was" +
    "written by developer with" +
    "13\" monitor");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X