Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Instanziierung Variablen mit @ anfangend - pro / contra
crazyyzarc
myCSharp.de - Member



Dabei seit:
Beiträge: 8
Herkunft: Germany

Themenstarter:

Instanziierung Variablen mit @ anfangend - pro / contra

beantworten | zitieren | melden

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);
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von crazyyzarc am .
Futile place, futile program
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

beantworten | zitieren | melden

Hi,
Zitat
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)
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Member

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.762
Herkunft: Düsseldorf

beantworten | zitieren | melden

Also mich würde das @ überall nerven :D
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.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Palladin007 am .
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1.029
Herkunft: Mainz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.758

beantworten | zitieren | melden

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 :-)

Zitat von Palladin007
Wem der Code zu einheitlich gefäbrt ist, kann sich ja mal Viasfora anschauen.
Nutze ich auch - mit etwas farblicher Anpassung (leider sind Flow Controls beim Black Theme rot - was aussieht wie ein Compiler Error) absolut top.
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
crazyyzarc
myCSharp.de - Member



Dabei seit:
Beiträge: 8
Herkunft: Germany

Themenstarter:

beantworten | zitieren | melden

Zitat von Khalid
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
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3.003
Herkunft: Thüringen

beantworten | zitieren | melden

[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 :)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LaTino am .
"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)
private Nachricht | Beiträge des Benutzers
Glowhollow
myCSharp.de - Member



Dabei seit:
Beiträge: 74

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.758

beantworten | zitieren | melden

Zitat von crazyyzarc
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.
private Nachricht | Beiträge des Benutzers
Glowhollow
myCSharp.de - Member



Dabei seit:
Beiträge: 74

beantworten | zitieren | melden

Naja Abt,

das war ein kleiner Exkurs in den Bereich, warum sollte ich mich an Konventionen halten....
private Nachricht | Beiträge des Benutzers
LaTino
myCSharp.de - Experte

Avatar #avatar-4122.png


Dabei seit:
Beiträge: 3.003
Herkunft: Thüringen

beantworten | zitieren | melden

Zitat von Glowhollow
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 ;).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LaTino am .
"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)
private Nachricht | Beiträge des Benutzers
Khalid
myCSharp.de - Experte

Avatar #avatar-2534.gif


Dabei seit:
Beiträge: 3.511
Herkunft: Hannover

beantworten | zitieren | melden

@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)
private Nachricht | Beiträge des Benutzers