泛型 vs 动态 vs 对象
Generic type vs dynamic vs object
我想使我的方法的 return 类型通用。调用者将决定它应该期望哪种类型。
实际上我的方法将是接口的成员,实现它的 class 将有一个决策块来将工作委托给其他方法。
因此我想将接口方法的 return 类型设为泛型。
我可以通过使用 dynamic 或 object 关键字或 c# 泛型类型来实现。
我无法弄清楚哪种是实现它的最佳选择,每种类型的局限性和优势是什么。
public interface ICoreWrapper
{
Response<T> ExecuteDeviceCommand<T>(DeviceCommand deviceCommand, object param = null);
}
请推荐我。
提前致谢。
如果您在编译时不知道类型,您可以使用动态,但它们会更慢,因为它们使用运行时调用并且不太安全,因为如果类型没有实现您尝试调用的方法,您将出现运行时错误。
使用动态return类型,根据输入类型return合适的对象。
我想使我的方法的 return 类型通用。调用者将决定它应该期望哪种类型。
实际上我的方法将是接口的成员,实现它的 class 将有一个决策块来将工作委托给其他方法。
因此我想将接口方法的 return 类型设为泛型。
我可以通过使用 dynamic 或 object 关键字或 c# 泛型类型来实现。
我无法弄清楚哪种是实现它的最佳选择,每种类型的局限性和优势是什么。
public interface ICoreWrapper
{
Response<T> ExecuteDeviceCommand<T>(DeviceCommand deviceCommand, object param = null);
}
请推荐我。
提前致谢。
如果您在编译时不知道类型,您可以使用动态,但它们会更慢,因为它们使用运行时调用并且不太安全,因为如果类型没有实现您尝试调用的方法,您将出现运行时错误。
使用动态return类型,根据输入类型return合适的对象。