en biz bu iki sınıf var diyelim:C# taban sınıftan türetilmiş tür olsun?
public class Derived : Base
{
public Derived(string s)
: base(s)
{ }
}
public class Base
{
protected Base(string s)
{
}
}
nasıl Derived
çağıran olduğunu Base
yapıcısı içinden öğrenebilirim? Bu benim ile geldi budur:
public class Derived : Base
{
public Derived(string s)
: base(typeof(Derived), s)
{ }
}
public class Base
{
protected Base(Type type, string s)
{
}
}
, örneğin, Base
'ın yapıcı içerisinde gelen yansımaları kullanmanın bir yolunu typeof(Derived)
geçen gerektirmeyen başka bir yolu var mı?
Çok ilginç bir gerçeği bir sürü kod içinde saklıyorsunuz. ' – VVS
daha iyi bir örneği, Derived1 d1 = yeni baz() 'çıkışını gösteren olacaktır' bir derleme hatası üretir, muhtemelen başka bir yol anlamına gelir. FYI '((Base) yeni Derived1(). GetType(). Name'" Türetilmiş1 "dir. – Seph
' Derived1 d1 = yeni baz (;); –