Laden...

Instanziierung Variablen mit @ anfangend - pro / contra

Erstellt von crazyyzarc vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.769 Views
C
crazyyzarc Themenstarter:in
8 Beiträge seit 2015
vor 5 Jahren
Instanziierung Variablen mit @ anfangend - pro / contra

Guten Morgen Zusammen,

was haltet ihr davon, Objektvariablen mit einem @ - beginnend zu bennen?
Aus meinen Augen sieht man so direkt wo Objekte erstellt werden und kann so dementsprechend damit arbeiten

Post @p1 = new Post();
Post @p2 = new Post("Seht euch meine neuen Schuhe an", true, "crazyyzarc");
            
Console.WriteLine(@p1);
Console.WriteLine(@p2);

Futile place, futile program

3.511 Beiträge seit 2005
vor 5 Jahren

Hi,

was haltet ihr davon, Objektvariablen mit einem @ - beginnend zu bennen?

Gar nichts 😃

Das @ wird verwendet um ggf. Variablen zu erstellen, die so heißen wie Schlüsselwörter. Also z.B. @event, oder @public. Vor allen Variablen ein @ zu kloppen ist, naja, ziemlich mies. Und ganz ehrlich, man sieht auch so wo Variablen verwendet werden, da brauche ich kein @ davor stehen zu haben. Mich persönlich würde das massiv verwirren und das Ganze extrem unleserlich machen.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

2.078 Beiträge seit 2012
vor 5 Jahren

Also mich würde das @ überall nerven 😄
Ich hatte bisher aber auch nie Probleme, direkt zu sehen, wo ein neues Objekt erzeugt wird, das new sticht denke ich ganz gut heraus. Wenn es kein new ist oder doch nicht ausreichend heraus sticht, kann man auch mit ein/zwei Leerzeilen vor bzw. nach der Zeile nachhelfen.

Das @ nutze ich nur, wenn der Name auch ein Schlüsselwort ist und jeder andere Name schlicht unpassend wäre - also eigentlich nie.

Wem der Code zu einheitlich gefäbrt ist, kann sich ja mal Viasfora anschauen. Damit wird der Code zwar knatsch-bund, aber man sieht gerade sowas wie zusammenhängende Klammern sehr viel besser.
Ich mag's jedenfalls sehr gerne, mittlerweile.

1.029 Beiträge seit 2010
vor 5 Jahren

Hi,

davon halte ich wenig - VisualStudio bietet es von Haus aus an zu suchen wo eine Variable verwendet und erstellt wird... Da braucht man kein @.

LG

16.806 Beiträge seit 2008
vor 5 Jahren

Sehe hier kein Umfrage, daher habe ich den Titel auch entsprechend geändert.

Prinzipiell ist es in jeder Programmiersprache üblich, dass die Community Regeln und Stile durchsetzt.
Da kann es noch so viele Company Regeln definieren; sie werden alle unterliegen. Die Masse gewinnt.

Und in C# ist das @ vor einer Variable nichts anderes als ein Workaround und _prinzipiell _ein Zeichen, dass man was falsch gemacht hat, sofern man es benötigt: man hat ein Schlüsselwort versucht zu zweckentfremdenden.

Die Community im Bereich von Open Source würde ein Pull Request mit so einem Stil (überall das @ zu verwenden) niemals akzeptieren - ich im übrigen auch nicht 😃

Wem der Code zu einheitlich gefäbrt ist, kann sich ja mal
>
anschauen.

Nutze ich auch - mit etwas farblicher Anpassung (leider sind Flow Controls beim Black Theme rot - was aussieht wie ein Compiler Error) absolut top.

3.170 Beiträge seit 2006
vor 5 Jahren

Hallo,

das @ gehört meiner Ansicht nach nur vorangestellt, wenn man tatsächlich Schlüsselwörter aus C# als Variblenname verwendet.
In Sollte man Keywords als Identifier verwenden? habe ich mal beschrieben, wann so etwas sinnvoll ist. In allen anderen Fällen sollte man davon die Finger lassen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

C
crazyyzarc Themenstarter:in
8 Beiträge seit 2015
vor 5 Jahren

Das @ wird verwendet um ggf. Variablen zu erstellen, die so heißen wie Schlüsselwörter.

Und wie sieht es mit einem o-anfangend an? Da gibt es sicher nicht auszusetzen bzw. andere Verwendungen?

Post oP1 = new Post();
Post oP2 = new Post("Seht euch meine neuen Schuhe an", true, "crazyyzarc");

Console.WriteLine(oP1);
Console.WriteLine(oP2);

Futile place, futile program

3.003 Beiträge seit 2006
vor 5 Jahren

[Artikel] C#: Richtlinien für die Namensvergabe

Ungarische Notation ist soooo 1995.

LaTino
EDIT: also, wenn dir das new nicht ausreicht, zu erkennen, wann ein Objekt erstellt wird...du versuchst hier ein Problem zu lösen, das keines ist 😃

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

G
74 Beiträge seit 2018
vor 5 Jahren

vielleicht sollten wir das Pferd anders aufsatteln.

Du wirst dich fragen, warum man denn jetzt nicht seine für sich optimalste Lösung verwendet.

Der Grund liegt in der Wiederverwendbarkeit.

Wenn du den Code nur für dich ganz alleine verwenden willst, und niemand anders den zu Gesicht bekommt, kannst du deine Variablen im Prinzip benennen wie du willst. Mal abgesehen von den Vorgaben, die einem Visual Studio vorgibt.

Aber auf die Frage zurückzukommen, warum man versucht einen einheitlichen Stil zu fahren ...

Gerade in Zeiten der Objektorientierung, bzw. generell in der etwas neueren Softwareentwicklung ist es so, das für vieles einfach gar keine Zeit mehr ist.

Würdest du ein Console.Writeline, selber programmieren ? Nein natürlich nicht, die Funktion ist schon da, das was du damit bewerkstelligen kannst ist dir klar - trotzdem weißt du nicht, wie derjenige der das entwickelt hat, gemacht hat.

Es gibt aber die Möglichkeit, eine Ebene tiefer zu gehen, das funktioniert in Visual Studio nur bedingt, aber du kannst dir in den meisten Fällen anzeigen lassen, wie der Code aufgebaut ist, zum besseren Verständnis sozusagen.

Verwendest du jetzt Code, den jemand anders programmiert hat (und das ist garnicht mal zu unterschätzen in der heutigen Zeit), willst du natürlich wissen, wie ist der aufgebaut, etc....

Deswegen sind Standards so wichtig. Eine einheitliche Schreibweise - erleichtert einem hier das ganze sehr und genau aus diesem Grund, beuge dich der Vorgabe der Mehrheit, und du wirst gemeinsam mehr erreichen.

16.806 Beiträge seit 2008
vor 5 Jahren

Da gibt es sicher nicht auszusetzen

Natürlich gibt es das. Wieso so nen Quatsch beginnen (Quatsch damit die Deutlichkeit ausgedrückt ist)?
Was erhoffst Du Dir denn? Was ist das Ziel? 🤔

Glowhollow Beitrag verstehe ich leider in diesem Zusammenhang der Fragestellung nur bedingt.

G
74 Beiträge seit 2018
vor 5 Jahren

Naja Abt,

das war ein kleiner Exkurs in den Bereich, warum sollte ich mich an Konventionen halten....

3.003 Beiträge seit 2006
vor 5 Jahren

Deswegen sind Standards so wichtig. Eine einheitliche Schreibweise - erleichtert einem hier das ganze sehr und genau aus diesem Grund, beuge dich der Vorgabe der Mehrheit, und du wirst gemeinsam mehr erreichen.

Ja, was nun?
Hast du den verlinkten Artikel mal gelesen? Es gibt bereits einen "Standard" (eigentlich "Konvention"). Dass du einen neuen erfinden möchtest, ist weder notwendig, noch sind deine Ideen irgendwie sinnvoll.

LaTino

Edit: Bitte um Vergebung. Gar nicht gemerkt, dass glowhollow nicht der OP ist, daher meine "Hä"-Reaktion 😉.

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

3.511 Beiträge seit 2005
vor 5 Jahren

@crazyyzarc:
Es macht einfach absolut kein Sinn irgendwas vor eine Variable zu setzen. Warum auch? Was soll das bringen? Ich verstehe es einfach nicht 😃

So um 1990 herum, wo es noch keine wirklich guten ausgearbeiteten IDEs gab und man eher mit nem Notepad programmiert hat, da habe ich tatsächlich Prefixe verwendet. Aber heute? Da nehmen die IDEs doch ein alles ab. Mouse Hover drüber und ich weiß welcher Typ (nutze konsequent var), rechtklick zur Deklaration, usw usw. Da braucht man definitiv keine Prefixe mehr und diese sind - zu recht - heute eher total verpönt.

Und das aller aller wichtigste: Einfach eine Variable so benennen, dass man gleich weiß was die "vor hat". Es gibt keine Zeichenbegrenzung bei Variablennamen 😃

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)