Feed
Google+
Contact
XING
LinkedIn
Twitter
ICQ
meebo.com

70-536 - Ich hasse solche Fragen

by Roland Schumacher alias GENiALi 21. April 2008 -- 147 words  -- 3109 mal gelesen

Das hier war die Frage.

Which of the following code samples is the most efficient and compiles correctly?

Folgende Antworten standen zur Verfügung.

1.

string s = null;
StringBuilder sb = null;
sb.Append("Hello");
sb.Append(", ");
sb.Append("World");
sb.Append("!");
s = sb.ToString();

2.

string s = null;
StringBuilder sb = null;
sb = "Hello";
sb += ", ";
sb += "World";
sb += "!";
s = sb.ToString();

3.

string s = null;
s = "Hello";
s += ", ";
s += "World";
s += "!";

4.

string s = null;
s = "Hello";
s += ", ";
s += "World";
s += "!";

Für mich war klar, es muss 3 oder 4 sein. Dort finde ich aber
keinen Unterschied. 1 kann nicht sein. StringBuilder ist null
und da kann man kein Append machen. Bei 2 wird der StringBuilder
falsch angewendet.

Richtig war die 1. Wie so? Sie ist effizient und lässt sich kompilieren.
Aber NICHT ausführen. Das war ja auch nicht die Frage.

Ich hasse solche Fragen.

Tags: ,

es läuft: Madonna – Madonna - Ray Of Light – Frozen

Tags:

Ausbildung

Kommentare (7) -

Impossible
29.04.2008 11:36:56 #

Warum sollte man etwas roggen, was man nicht ausführen kann? Echt banale Frage! ich würde es auch einfach wie ein 3 programieren (oder doch lieber wie in 4? ;) ).

Antwort

GENiALi
GENiALi
01.05.2008 13:42:19 #

"most efficient" ist halt schon eben der StringBuilder. Aber funktionieren tut er nicht.

Antwort

Matthias
Matthias
05.05.2008 13:21:13 #

nicht verzweifeln, einfach ausprobieren was ausführbar ist. Würde aber auch zu 3. tendieren.

Antwort

Daniel
Daniel Germany
14.10.2009 17:00:02 #

Noch dazu ist es schlicht und einfach falsch! Bei 4 Verkettungen ist der StringBuider sinnlos und benötigt länger als einen "normale" string-Verkettung

Siehe die Ausgabe des folgenden kleinen Konsolen-Programms:
Hello, World!
56
Hello, World!
21

            var sw = new Stopwatch();

            sw.Start();

            string s = null;
            var sb = new StringBuilder();
            sb.Append("Hello");
            sb.Append(", ");
            sb.Append("World");
            sb.Append("!");
            s = sb.ToString();

            sw.Stop();

            Console.WriteLine(s);
            Console.WriteLine(sw.ElapsedTicks);

            sw.Reset();

            sw.Start();

            string z = null;
            z = "Hello";
            z += ", ";
            z += "World";
            z += "!";

            sw.Stop();

            Console.WriteLine(z);
            Console.WriteLine(sw.ElapsedTicks);

            Console.ReadKey();

Antwort

GENiALi
GENiALi Germany
14.10.2009 17:24:19 #

Bei so kurzen verkettungen geb ich dir recht.
Es gibt aber Leute die arbeiten überhaupt nicht mit string sondern immer mit StringBuilder. Smile

Antwort

Daniel
Daniel Germany
14.10.2009 22:10:16 #

Ja, ich nutze ihn mittlerweile auch häufig; insbesondere, da man die Append-Methoden ja mit allem möglichem füttern kann und auch die String Formatierung gleich mit drin ist.

Aber es war ja nach der "most efficient" code sample gefragt und das wäre der StringBuilder zumindest im konkreten Fall eben nicht... Dann hätten die M$ Jungs noch 4-5 Strings dran hängen müssen... Außerdem hätte ich nie gedacht das in ner MS-Prüfung solche Fangfragen dabei sind (bin selbst gerade am überlegen, die Prüfung(en) zu machen).

Antwort

GENiALi
GENiALi Switzerland
14.10.2009 22:19:23 #

Das sind die original Trainingsfragen. In dem Stiel kommen die nicht an der Prüfung. Aber es ging MS nur um das Bewustsein, dass StingBuilder schneller ist als String. Aber eben nur, wenn man auch ausgiebige Stringoperationen macht. Sonst nicht.

Antwort

Kommentar schreiben

  Country flag

biuquote
  • Kommentar
  • Live Vorschau
Loading

Statistik

Gesamte Posts: 1018
Dieses Jahr: 0
Diesen Monat: 0
Diese Woche: 0
Kommentare: 922
Total Bewertungen: 84
Ø Bewertung: 4,37
Meisten Kommentare
Google+ ... (28)
Beste Ø Bewertung
Tryton - Teil 6 - Installation ... (5)
Meiste Bewertungen
Windows 7 und die ersten Erfah ... (5)

Buttons

Benutzerprofil von GENiALi connection speed test network connection Bloggeramt.de Slug.ch Blog Verzeichnis und Blog Webkatalog Schumacher Roland Seitwert Valid XHTML 1.0 Transitional