C# Türünün varsayılan değerini almak için default(T)
'u kullanabilirim. System.Type
'dan çalışma zamanında varsayılan türü almam gerekiyor. Bunu nasıl yapabilirim?Bir türle nasıl varsayılan (T) çağırabilirim?
E.g. Bu çizgisinde bir şey (hangi çalışmıyor) Eğer bir ifade ağacı oluşturmak için çalışıyorsanız
var type = typeof(int);
var defaultValue = default(type);
Sorularımı yazdıktan kısa bir süre sonra 'return İfadesi ile geldim. Lambda> (Expression.Convert (Expression.Default (type), typeof (object))) Compile()(); ', ama seninki çok daha güzel. –
GiddyUpHorsey
@Giddy: Bunu yapmak için çok pahalı bir yol olurdu, çünkü ifade ağacını IL'ye (ve JIT'in bunu her zaman derleme yapmak zorunda kalacak) derlediğine göre. –
Evet, katılıyorum. Bu yüzden kullanmıyorum ve bunun yerine madgnome'un çözümünü kullanıyorum. Her ne kadar, daha az ve daha okunaklı bir koddu, performans değil, beni kullanması için beni zorladı.Performansım senaryo için çok büyük değil. – GiddyUpHorsey