C# - Kleines Prob - Komm nich weiter!!

Christian Kusmanow

Erfahrenes Mitglied
Alexander12 hat gesagt.:
Aber bei meinem kleinen Projekt kommts da drauf wahrscheinlich nicht an.... :-(
Man könnte meinen das Du aus dem PHP Lager kommst. ;-] :D
Nee, Spaß. :)

Man sollte sich immer Gedankem machen wie es absolut am ressourcenfreundlichsten geht
und immer so umsetzen. Das ist immer eine gute Übung!
Nur so eignet man sich einen guten programmier Stil an. ;) :)

MfG, cosmo
 

Alexander12

Erfahrenes Mitglied
Hi.

Du hast ja recht....

Das mit dem PHP-Lager:
Ich habe erst vor ein paar Wochen mit PHP angefangen mit C# progge Ich schon länger. Und Ich habe NICHT PHP angefangen, weil Ich faul bin, sondern weil ICh mir ne Webseite proggen will, das das klar is!

Wollte nur klarstellen.


MfG Alexander12
 

Christian Kusmanow

Erfahrenes Mitglied
Hey, fühl Dich doch nicht gleich angepisst, dass war nicht in meinem Sinne.
Ich hab das doch nicht ernst gemeint. :)

Da, lies mal:
[thread=216324]Guten Programmierstil aneignen - Thread[/thread] :D
[thread=211575]"neue" Programmiersprache - Thread[/thread]

MfG, cosmo
 

Norbert Eder

Erfahrenes Mitglied
Um da mit ein paar Dingen aufzuräumen:

Performance:
Es ist IMMER wichtig schnellen Code zu fabrizieren - unabhängig ob da viele Funktionen in der Software sind oder nicht. Kein User möchte unnötig lange auf etwas warten. Des weiteren sei eines noch dazugesagt: Schneller Code muss nicht zwangsweise kurz sein. Oft ist es besser gewisse Alogrithmen ordentlich auszuprogrammieren, erst dann sind sie wirklich schnell.

Zu dem ReadLine() "Problem":
ReadLine löscht nichts (ist in diesem Zusammenhang, cosmo, der falsche Ausdruck). Und selbst wenn noch gesplittet werden muss, warum in eine eigene String-Variable schreiben (die jedes mal neu instanziert wird) wenn das gleich mit dem ReadLine geht? -> ReadLine().Split(....). Dann bleibt zwar das Array zu instanzieren, aber der String (der ja ohnehin durch ReadLine schon erstellt wird, muss kein zweites Mal instanziert werden. Somit braucht das Teil wesentlich weniger Speicher und reagiert auch entsprechend performanter. Davon abgesehen ist es noch besser mit Byte-Arrays zu arbeiten.

Was PHP angeht:
Diskutierts das bitte im entsprechenden PHP-Forum. Das hat hier nichts zu suchen - auch nicht das warum und wieso, das interessiert ohnehin niemanden.

@Alexander12:
Es ist ja nett, wenn du alles in Frage stellst, aber bei vielen meiner Antworten ist das nicht nötig, da ich weiß was ich tue. Ergo kannst das getrost so verwenden wie ich es dir vorschlage. Das trifft zwar nicht auf alles zu, aber auf diese rudimentären Dinge auf alle Fälle. Aussagen wie "dass das mal klar ist" sind auch nicht unbedingt förderlich für das Klima hier im Forum, zumal du es auch falsch geschrieben hast.
 

Alexander12

Erfahrenes Mitglied
Hi.

@Alexander12:
Es ist ja nett, wenn du alles in Frage stellst, aber bei vielen meiner Antworten ist das nicht nötig, da ich weiß was ich tue. Ergo kannst das getrost so verwenden wie ich es dir vorschlage. Das trifft zwar nicht auf alles zu, aber auf diese rudimentären Dinge auf alle Fälle. Aussagen wie "dass das mal klar ist" sind auch nicht unbedingt förderlich für das Klima hier im Forum, zumal du es auch falsch geschrieben hast.

Ja, Ich weiß... :-(


MfG Alexander12
 

Christian Kusmanow

Erfahrenes Mitglied
Re: Performance

Norbert Eder hat gesagt.:
Performance:
Es ist IMMER wichtig schnellen Code zu fabrizieren - unabhängig ob da viele Funktionen in der Software sind oder nicht. Kein User möchte unnötig lange auf etwas warten. Des weiteren sei eines noch dazugesagt: Schneller Code muss nicht zwangsweise kurz sein. Oft ist es besser gewisse Alogrithmen ordentlich auszuprogrammieren, erst dann sind sie wirklich schnell.
Das sind wir ja einer Meinung. :)
Norbert Eder hat gesagt.:
Zu dem ReadLine() "Problem":
ReadLine löscht nichts (ist in diesem Zusammenhang, cosmo, der falsche Ausdruck). Und selbst wenn noch gesplittet werden muss, warum in eine eigene String-Variable schreiben (die jedes mal neu instanziert wird) wenn das gleich mit dem ReadLine geht? -> ReadLine().Split(....). Dann bleibt zwar das Array zu instanzieren, aber der String (der ja ohnehin durch ReadLine schon erstellt wird, muss kein zweites Mal instanziert werden. Somit braucht das Teil wesentlich weniger Speicher und reagiert auch entsprechend performanter. Davon abgesehen ist es noch besser mit Byte-Arrays zu arbeiten.
Da bin ich mit Dir auch einer Meinung. :)

Sicher weiss ich auch das man direkt auf die zurückgegebenen Objekte von Funktionen zugreifen kann.
Soviel Erfahrung solltest mir langsam aber schon zutrauen. :p

Für den Fall das der String an dieser Stelle nocheinmal gebaucht wird,
er evtl irgendwann mal gesplittet wird, ist es doch notwendig,
sich diesen erstmal irgendwo abzulegen.
Das war einzig und allein mein Anliegen.
Sicher ist die direkte Variante hier absolut treffend. ;)
Und ich glaub zu verstehen was Du meinst.
Ich sollte darauf achten so wenig zu instanzieren wie es nur geht
und ein schon vorhandenes String-Objekt verwenden,
sofern ich den String mehrmals brauche,
um den geholten String von da aus weiter zu verwenden.

Ich hoffe ich habe das jetzt vertstanden. :-(

lg, cosmo
 

Norbert Eder

Erfahrenes Mitglied
Cosmo, das war jetzt nicht unbedingt auf dich bezogen, also nicht gleich alle Stacheln aufstellen ;-)

Zum Thema String:
Wenn du bereits eine vorhandene String-Variable hast und du weißt ihr einen neuen Wert zu, wird diese neu instanziert, im Hintergrund. Fügst du nur ein Zeichen hinzu, wird der String neu instanziert, im Hintergrund.
 

Christian Kusmanow

Erfahrenes Mitglied
Norbert Eder hat gesagt.:
Cosmo, das war jetzt nicht unbedingt auf dich bezogen, also nicht gleich alle Stacheln aufstellen ;-)
Ich hab doch auch die Zunge rausgestreckt. So wie jetzt :p :)
Norbert Eder hat gesagt.:
Zum Thema String:
Wenn du bereits eine vorhandene String-Variable hast und du weißt ihr einen neuen Wert zu, wird diese neu instanziert, im Hintergrund. Fügst du nur ein Zeichen hinzu, wird der String neu instanziert, im Hintergrund.
Also heisst das, dass ich niemals drum herrum kommen werde
einen neuen String zu instanzieren, sofern ich ihn mehrmals brauche.