Diyelim ki template kullanan bir method yazdınız ve method içinde verdiğiniz template class tipini instantiate etmek istiyorsunuz (yani kısaca template'i new'leyip o tipten obje oluşturmak istiyorsunuz). new T(); yazıp denediğinizce çalışmadığını göreceksiniz. Sistem size new diye bir constant olmadığını söyleyecek.
public MyClass GetMyObject<T>()
{
T obj = new T();
MyClass myObj = (MyClass)obj;
myObj.MyProperty = 1;
return obj;
}
yani bu kod çalışmayacak :)
Şimdi de çalışır hale getirelim :)
public MyClass GetMyObject<T>() where T : MyClass, new(){
T obj = new T();
MyClass myObj = (MyClass)obj;
myObj.MyProperty = 1;
return obj;
}
Umarım işinize yarar benim çok yaradı :) Sevgiler