gpt4 book ai didi

c# - 获取派生类型类

转载 作者:行者123 更新时间:2023-11-30 14:22:22 33 4
gpt4 key购买 nike

所以,我有以下结构:

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 个对象
  • 1 级:(A) - 2 个对象
  • 2 级:(B) - 100 个对象及更多
  • 3 级:(C) - 80 个对象及更多

我把这个案例放在括号里

如有任何帮助,我将不胜感激

最佳答案

在对象的任何实例上,您都可以调用 .GetType() 来获取该对象的类型。

构造时不需要设置类型

关于c# - 获取派生类型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49970122/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com