19 Ocak 2015 Pazartesi

Template class üzerinden nesne instantiate etme

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

10 Ocak 2015 Cumartesi

Linq ile Lambda arasında ne fark var yahu!


var user = databaseEntities.Users.SingleOrDefault(d => d.Id == 10)
var user = (from table in databaseEntities where table.Id == 10 select table)