Prezentace a příklady z přednášky o C# 2.0
Uvolnil jsem prezentaci a příklady ze včerejší přednášky o C# 2.0
Stažení prezentace, velikost 313 KB
Stažení příkladů (testovány na prosincovém CP buildu VS.NET), velikost 170 KB
Protože při diskuzi zazněl zajímavý dotaz na téma dynamického vytváření uzavřeného konstruovaného generického typu pomocí reflection, přidal jsem další příklad, který ukazuje, že máme v C# (a v .Net Frameworku obecně) i za běhu aplikace k dispozici všechny informace o generickém typu, a proto můžeme provádět "kouzla", která jsou v C++ nebo v JAVĚ zapovězená a nedostupná.
static void Main(string[] args)
{
//Získání generického typu
Type poolType = typeof(ObjectPool<>);
//Vytvoření generických argumentů
//(typ SomeResource substituující generický parametr T z třídy ObjectPool)
Type[] genArguments = new Type[]{typeof(SomeResource)};
//Dynamické vytvoření uzavřeného konstruovaného typu ObjectPool<SomeResource>
Type constructedType = poolType.BindGenericParameters(genArguments);
//Vytvoření instance typu ObjectPool<SomeResource>
Object conType = Activator.CreateInstance(constructedType, new Object[]{10});
Console.WriteLine(conType.ToString());
}
Tuesday, 12 April 2005 12:58:00 (Central Europe Standard Time, UTC+01:00)