gpt4 book ai didi

c# - 将派生类类型动态转换为基类类型 C#

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:19 24 4
gpt4 key购买 nike

public DerivedClass : BaseClass
{
// code
}

DerivedClass B = (DerivedClass)MethodReturnsBaseClassObject();
B.DoWork();

BaseClass 继承了很多派生类。所以每次我需要写一个新方法来使用一些属性。

是否有可能使用反射使 DerivedClass 类型动态化并执行类似的操作并使其通用。

System.Type type = GetRequestFromSession().GetType();
type B = (type )MethodReturnsBaseClassObject();
Console.WriteLine( B.Name);
Console.WriteLine( B.Age);

任何帮助表示赞赏。

最佳答案

如果您使用具有以下签名的泛型方法,则可以在强制执行基类约束的同时安全地访问派生类型的成员(无需强制转换):

public TDerived MethodReturnsDerivedObject<TDerived>()
where TDerived : BaseClass

您的调用将如下所示:

DerivedClass b = MethodReturnsDerivedObject<DerviedClass>();

b.ExecuteSomeMethodDefinedInBaseClass();

Console.WriteLine(b.SomePropertyDefinedInDerivedClass);

关于c# - 将派生类类型动态转换为基类类型 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542917/

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