Hallo
Wir alle hier teilen mehr oder weniger das gleiche Hobby/Leidenschaft. Es gibt sicherlich viele Gründe warum die meisten von uns es aufgegeben haben, über Entwicklungs-Dinge, sich mit andern Leuten großartig zu unterhalten. Was mich angeht, liegt es absolut NICHT an diesem Forum, sondern an sehr enttäuschenden Erfahrungen in diversen Foren in den letzten 20 Jahren. Doch ich würde es schön finden, wenn es mehr Gelegenheiten/Themen geben würde, über die wir uns austauschen könnten. Nicht nur das es sicherlich viel spaß machen würde über Gamedev/design zu unterhalten, würde es auch helfen die Motivation fürs eigene Projekt hoch zu halten, und andere Gedanken/Ideen/Ansichten helfen auch immer das man selber dazu lernt und besser wird.
Nun aus dem nichts heraus, ist es schwer/blöd ein Thema zu finden. Doch mit einem Kollegen kahm ich heute zufällig auf das Thema „
var in c#“ … konnte für mich das Thema aber noch nicht befriedigend abschließen… also dachte ich mir, dies wäre vielleicht etwas, über das wir uns hier unterhalten könnten, um „das Eis zu brechen“… als Anfang so zusagen, um die Türe auf zu stoßen für hoffentlich viele unterschiedliche kommende Diskussionen.
In diesem Sinne… auch wenn das Thema euch vielleicht anödet… wäre trotzdem schön, wenn ihr was dazu schreibt
Bei „
var“ kommt es mir nun zunehmend so vor, dass es vor allem (ziemlich nur?) die Leute begeistert, die viel LINQ benutzen. Was ich aber schon außerhalb der Spieleentwicklung nicht so gerne verwende, und in der Spieleentwicklung erstrecht nicht. Daher interessiert mich nun eure Meinung auch so sehr
Für diejenigen die es mit c# nicht so haben:
var ist ein Schlüsselwort und wird benutzt wie ein Typ Bezeichner (int, float, long, string usw.) wenn man eine neue Variable initialisiert.
|
C#-Quelltext
|
1
2
3
4
5
6
7
8
9
|
int hitPoints = 100;
float speed = GetCurrentSpeed();
ShipTechno.ShipComponent shield = new ShipTechno.ShipComponent(ShipTechno.ShipComponent.Typ.Shield);
// kann mit var abgekürzt werden zu:
var hitPoints = 100;
var speed = GetCurrentSpeed();
var shield = new ShipTechno.ShipComponent(ShipTechno.ShipComponent.Typ.Shield);
|
Das letzte Beispiel ist zwar nun sehr konstruiert… doch es soll hervorheben wie
var helfen kann, gerade bei den „umständlich langen Typen“ wo das doppelt schreiben (links und rechts vom = Zeichen) besonders nervt.
Wichtig an
var ist: Es ist streng Typisiert! Es ist also kein „Variant“ welche ohne festen Typ wäre oder zur Laufzeit verschiedene Typen annehmen könnte! Sondern
var wird vom Compiler unmittelbar in den echten Typ „ersetzt“. Also so in etwa wie bei c/c++ der Preprocessor mit #define etwas unmittelbar „ersetzt“.
var dient nur dazu, den Code minimal zu kürzen/klarer zu machen. Bzw. dazu soll es dienen (doch genau hierüber gehen die Meinungen auseinander -> das halte ich für Diskussionswürdig). Mit
var sagt man sozusagen zum Compiler:
„du siehst doch was ich rechts hinschreibe mit welchem Wert ich die neue Variable initialisiere, also ist doch auch klar was für ein Typ die Variable ist, muss ich das jetzt echt nochmals wiederholen und für dich doppelt schreiben!?“
Wo seht ihr Vorteile, Nachteile, macht es den Code insgesamt lesbarer, oder eher unklarer?
Auch macht
var sicherlich öfters keinen Sinn, also müsste man selbst wenn man wollte, es „mal so und mal so schreiben“.
Was denkt ihr über diesen nicht vermeidbaren Mix?