( BaT | 2013. 05. 08., sze – 14:12 )

Az operator overloadinghoz annyit tennék hozzá, én egy olyan megoldást hiányolok, hogy csak egy interface-t kelljen megvalósítani, és onnantól kezdve lehessen használni az ahhoz tartozó operátorokat. Pl. Comparable megvalósításával megkapod a ==, !=, <, >, <=, >= operátorokat. Így invalid lenne az az érv, hogy lehetőség van inkonzisztensen felüldefiniálni az operátorokat. Az operátorok csak nyelvi elemként jelennének meg, fordításkor szépen kicserélődnének a megfelelő metódushívásra. Tényleg csak a == operátorral van gond, de ahogy te is mondtad, be lehetne vezetni még egy operátort.

Propertyk, delegatek, eventek, linq, yield return, extension methods, lambda kifejezések stb.: jó dolgok ezek, ha ésszel használja az ember. Érteni kell, mit csinálnak a háttérben, és nem is kötelező ezeket használni (tervezési mintákkal nagyrészt kiválthatóak), viszont jelentősen meggyorsíthatják egy program fejlesztését.
Szerk: oké, propertyket nehéz megkerülni, viszont arra nem tudok ellenérveket felhozni. :)