Blog Null Reference Exception - kategorie C#
Polymorfismus v jazyku C# striktně zajišťuje, že na instanci odvozené třídy je vždy volána přepsaná (override) implementace virtuální metody. Toto platí nejen například při přetypování dané instance zpět na typ základní třídy, ale i při volání metody základní třídy pomoci reflection.
Podle mnoha zdrojů by správná implementace disposable patternu (dále budu tento způsob označovat jako tzv. rozšířený disposable pattern) v jazyce C# tj. korektní implementace interface IDisposable měla pro base třídu vypadat takto:
V tomto článku si ukážeme a budeme podrobněji diskutovat jednu ze zajímavých záležitosti, na které bychom mohli narazit při používání async/await v praxi.
V tomto článku si na velmi jednoduchém příkladu vysvětlíme princip vykonávání kódu používající novou syntaxi jazyka C# 5.0 async/await.
Jazyk C# rozlišuje dva typy porovnávání - porovnání referenční (reference equality) a hodnotové (value equality). Hodnotové porovnávání se chápe tak, že dva objekty jsou shodné pokud tyto objekty představují stejnou hodnotu, referenční se chápe tak, že dvě reference jsou shodné pokud odkazují na stejný objekt (tj. stejnou instanci). Pro referenční porovnávání se používá metoda ReferenceEquals, pro hodnotové metoda Equals (případně statická metoda Equals).
C# 4.0 umožňuje při používání COM API (pomoci COM interop) použít stejné syntaxe jako je u indexéru i pro tzv. indexed property. Viz například takovýto programový přístup k buňkám MS Excel sheetu:
Před nedávnem vyšla veřejná beta verze produktů Visual Studio 11, .NET 4.5, C# 5.0 a už je tedy v celku jasné jaké nové funkce v těchto produktech budou a které nebudou. Nová verze jazyka C# 5.0 bude obsahovat kromě “velkých funkcí”, což je samozřejmě async/await a caller info attributes (u kterých se mi mimochodem vůbec nelíbí jak jsou do jazyka “dolepeny” - vlastní užitečnost této funkce ale nezpochybňuji), i nějaké ty menší. Jednou z těch menších je fix sémantiky foreach cyklu.