通用类型与动态对象

时间:2015-11-26 06:18:06

标签: c#-4.0 dynamic

我想让我的方法的返回类型通用。调用者将决定它应该期望的类型。

实际上我的方法将是接口的成员,并且实现它的类将有一个决策块来将工作委托给其他方法。

因此我想将接口方法的返回类型设为通用。

我可以通过使用动态或对象关键字或c#泛型类型来实现这一点。

我无法弄清楚哪个是实现它的最佳选择,以及每种类型的限制和优势。

 public interface ICoreWrapper
 {
    Response<T> ExecuteDeviceCommand<T>(DeviceCommand deviceCommand, object param = null);

 }

请建议我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果你在编译时不知道类型,你可以使用动态,但它们会慢一些,因为它们使用的是运行时调用而且安全性较低,因为如果类型没有实现你试图调用的方法,你会得到一个运行时错误。

使用动态返回类型,根据输入类型返回相应的对象。