[C# / VS 2012] Umlaute in Variablennamen?

Rakshasa

Mitglied
Registriert
24 Juli 2013
Beiträge
176
Ort
ADL
In VS 2012 (wahrscheinlich schon vorher) ist es zu meinem Erstaunen möglich, Variablen mit Umlauten zu definieren. In meinen bisherigen Programmiersprachen ging das nicht und irgendwie habe ich Hemmungen, eine Variable z.B. "einträge" zu nennen und habe deshalb quasi durchgehend auf Englisch programmiert.
Habe ich Recht mit diesen Hemmungen oder spielt es letztlich keine Rolle, ob Umlaute in den Namen der Variablen herumschwirren?
 
Sprachspezifische Sonderzeichen solltest Du vermeiden. Begrenzt auf Dein System ist das vielleicht egal, aber sollte man den Code mal in einer z.B. englischen Umgebung öffnen, so werden sie dort natürlich nicht korrekt wiedergegeben.

Auch durchgehend englisch zu programmieren ist nicht verkehrt, da sich die Programmiersprache hier anlehnt.
if BedingungErfüllt then (VB) sieht halt etwas dämlich aus, beeinträchtigt den Ablauf aber nicht.
 
Es gibt ja mit Recht Coding Conventions bzw. Programming Guidelines. An diese sollte man sich auch halten. Spätestens wenn übergreifend mehrere Leute an einem Projekt arbeiten (müssen), rächt sich das. Code sollte auch von jedem gelesen, bzw. verstanden werden.
Im Prinzip ist es ja egal, ob Variablen Umlaute verwenden, aber es ist wahrscheinlich nicht klug diese zu verwenden. Genauso wenig wie russische, oder chinesische, oder japanische etc. Sprachelemente.
 
gewöhne dir lieber gleich an in englisch zu programmieren, ist eigentlich überall Standard und somit erledigt sich auch die Frage, ob man Umlaute verwenden sollte oder nicht :p
 
Für das fertig kompilierte Programm sollte es keinen Unterschied machen. Das Problem ist jedoch, dass man sich sowas rasch angewöhnt und man es nur schwer wieder los wird. Gerade wenn man dann andere Code Stylings anwenden muss weil man bsp. in einer anderen Firma angestellt ist kann es dann schon zum Graus werden wenn man dann auf einmal Deutsch schreibt und Umlaute verwendet und dann auf einmal Englisch coden muss.

N guter Tipp zum Abgewöhnen: Der CI Server Bamboo auf einem Linux Server. Wenn der falsch eingestellt ist wirft er für jedes Sonderzeichen einen Fehler. Und dann kann man mal erklären warum der Build scho wieder broken ist ;)
 
Sprachspezifische Sonderzeichen solltest Du vermeiden. Begrenzt auf Dein System ist das vielleicht egal, aber sollte man den Code mal in einer z.B. englischen Umgebung öffnen, so werden sie dort natürlich nicht korrekt wiedergegeben.
Das ist kaum ein Problem, da Visual Studio meines Wissens (und gemäss der Empfehlung der C#-Language-Specification) Quellcode-Dateien als UTF-8 speichert, somit lassen sich unabhängig vom System-Zeichensatz prinzipiell beliebige Unicode-Zeichen darstellen, sowohl in Identifiern als auch z.B. in String-Literalen.

Bei Identifiern empfiehlt es sich allerdings dennoch aus diversen Gründen, sich auf ASCII-Zeichen (bzw. konkret auf word characters - A-Z, a-z, 0-9, _) zu beschränken. Diese lassen sich auf jeder Tastatur eingeben und werden auch in alternativen Compilern und Code-Repositories keinerlei Probleme bereiten. Auch würde ich im Allgemeinen ohnehin stark zu englischsprachigen Identifiern raten, zumal die deutsche Sprache aufgrund der komplexeren Grammatik z.B. bei zusammengesetzten Identifiern leicht zu Unklarheiten führt (z.B. könnte man sowohl für `kundeName` als auch für `kundenName` als Bezeichner argumentieren, während das englischsprachige `customerName` eindeutig ist) und ausserhalb des deutschen Sprachraums ohnehin nicht verstanden wird.
 
Die Therorie habe ich jetzt nicht hinterfragt, aber ich habe es in der Praxis einmal erlebt, daß auf einem komplett englischem System(OS+VS) Code falsch dargestellt wurde.
 
Dann wäre natürlich interessant, um welche Visual-Studio-Version es sich gehandelt hat, und ob die Datei UTF-8-kodiert war. Inzwischen ist das IIRC Standard, ältere Visual-Studio-Versionen haben jedoch Dateien standardmässig in der aktiven Windows-Legacy-Kodierung (in Deutschland in der Regel windows-1252) gespeichert, was zu eben solchen Problemen führt.

Anyway - die Empfehlung bleibt unabhängig davon dieselbe.
 
  • Thread Starter Thread Starter
  • #9
Danke Kugelfisch für die hervorragende Antort, wieder eine Kerze mehr auf meinem privaten Kugelfisch-Altar. :D
Danke auch an die anderen Halbgötter! :p
 


Ich denke, ich kann das bestätigen.
Ich habe hier ein VS 2008, da ist der Standard: "Westeuropäisch (Windows) - Codepage 1252"

Bei VS 2010 habe ich hier "Unicode (UTF-8 with signature) - Codepage 65001"

Bei VS2012 spare ich mir jetzt nachzuschauen
 
Ich war mal so frei und hab Kugelfischs Beitrag als Hilfreiches Posting markiert.
 
Zurück
Oben