aurel napisał(a)
Przecież to powinna załatwić odpowiednia konwencja nazewnictwa zmiennych...
Błe, podkreślnik przed zmienną? Masochizm/sadyzm.
aurel napisał(a)
Nie używam tam, gdzie nie trzeba, bo redundancja to zło.
this.
to redundancja, a nadmiarowy podkreślnik nie?
Zresztą, nie mam żadnego Twojego kodu w C# teraz pod ręką, ale jesteś pewna że nie masz nigdzie celowo żadnej nadmiarowości w kodzie? W C# sporo słów kluczowych jest opcjonalnych, a jednak regularnie dodawanych.
_ jest zalecane przez "Framework Design Guidelines" czyli jak klepiesz .NET Framework to spoko używaj _ dla całej reszty śmiertelników zalecane jest używanie this.. - DibbyDum dzisiaj, 15:37
Odnośnie reszty śmiertelników:
https://msdn.microsoft.com/en-us/library/ms229045.aspx - X DO NOT use underscores, hyphens, or any other nonalphanumeric characters.
https://msdn.microsoft.com/en-us/library/ta31s3bc(v=VS.71).aspx - Do not use Hungarian notation for field names. Good names describe semantics, not type. Do not apply a prefix to field names or static field names. Specifically, do not apply a prefix to a field name to distinguish between static and nonstatic fields. For example, applying a g_ or s_ prefix is incorrect.
sporadycznie przy polach gdy musze. nie zdarza mi sie nie odrozniac pol od parametrow, imo nie byloby glupie zeby 'this' w ogole wyeliminowac ze skladni c# czy javy (jasne, za pozno)
Bez przesady, nie można wyeliminować this
bo this ma kilka zastosowań gdzie go się nie da zastąpić (przykładowo: void Asdf() { RegisterSomething(this); }
)
katelx napisał(a)
nie no, to wlasnie ten przypadek gdy 'musze'. chialabym zeby skladnia wymuszala ze np. nie mozna przypisywac nic do parametrow lub cos w tym stylu, przez co
nie trzeba by bylo uzywac zadnych magicznych prefixow - katelx wczoraj, 16:06
Nie podoba mi się takie rozwiązanie, bo jest magiczne. Na przykład wtedy foo
może się odnosić do dwóch różnych zmiennych w jednym scope - z tego co wiem, to by było rozwiązanie unikalne na skalę języków programowania z leksykalnym scopingiem. Niezbyt lubię magiczne rozwiązania :P. Więc to nie tyle twórcy języka poszli na łatwiznę, co ratują programistę przed jego błędami.
Tak samo jak nic nie stoi na przeszkodzie żeby int i; int j = i + 2;
się kompilowało (i
miałoby domyślną wartość zero). Ale twórcy woleli zabronić takiej konstrukcji.