c# – 获取派生类型类
发布时间:2020-12-16 01:26:34 所属栏目:百科 来源:网络整理
导读:所以,我有以下结构: public abstract class MyBase{ public Type TargetType { get; protected set; }}public class A : MyBase{ public A() { TargetType = GetType();//Wrong,I need B class type not C }}public class B : A{ public B() { }}public cla
所以,我有以下结构:
public abstract class MyBase { public Type TargetType { get; protected set; } } public class A : MyBase { public A() { TargetType = GetType();//Wrong,I need B class type not C } } public class B : A { public B() { } } public class C : B { public C() { } } 当然,我可以这样接收我的类型: public class B : A { public B() { TargetType = typeof(B); } } 实际上,我必须编写一些代码来使示例更清晰: 将Class1.cs public static Dictionary<Type,Type> MyTypes = new Dictionary<Type,Type>() { { typeof(B),typeof(BView) } } public Class1() { C itemC = new C(); Class2.Initialize(itemC); } Class2.cs public static Initialize(MyBase myBase) { Type t; Class1.MyTypes.TryGetValue(myBase.TargetType,out t); //I need get BView but I get null because *myBase.TargetType* is C class type } 等级结构: > 0级:(MyBase) – 1个对象 我把这个案子放在括号里 我将不胜感激任何帮助 解决方法
在对象的任何实例上,您可以调用.GetType()来获取该对象的类型.
您无需在构造上设置类型 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |