gpt4 book ai didi

c# - 调用没有反射的方法声明

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

我有一个基类(订单)和一组子类(productorder、specialorder、partsorder 等)。

只有这些子类中的一些实现了一个特定的接口(interface)(ITrackingCustomer),它有一个单一的方法声明(object getcustdetails())。

作为我的解决方案的一部分,我的所有订单都在一个中心位置处理,即任何 crud 方法都通过一个中心层。在这个中心层中,我想执行以下操作:

如果订单是 ITrackingCustomer 类型

然后 调用方法 getcustdetails()

我使用下面的代码来工作:

if (typeof(ITrackingCustomer).IsAssignableFrom(Order.GetType())) 
{
MethodInfo theMethod = Order.GetType().GetMethod("getcustdetails");
object y = theMethod.Invoke(Order, null);
}

我对第一部分使用 isassignablefrom 很满意,但我想在第二部分使用性能强度较低的方法(即使用调用的反射)。

我的问题是:

是否有更有效的方法来执行此操作,因为我了解到使用 invoke 命令的成本很高。

最佳答案

ITrackingCustomer ord = Order as ITrackingCustomer;
if (ord != null)
{
object y = ord.getcustdetails();
}

关于c# - 调用没有反射的方法声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155334/

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