【发布时间】:2015-08-26 02:40:12
【问题描述】:
我处于一种奇怪的情况,我的一个方法必须接收 object 或 dynamic 参数(因为它会接收任何东西),但是我确实关心该类至少实现了两种方法。
显然,最好只使用和接口,所有希望在我的方法上接收的对象都必须实现;遗憾的是,我不能保证...
我在我的类中使用了很多该对象(以及这两个函数),并且希望引用该对象的“类型”为“IImplementsBothMethods”,因此我可以在知道它不会被强制转换后使用它休息。
我想要的是这样的:
public interface IImplementsBothMethods
{
Method1();
Method2();
}
public class ClassThatReceivesAnything
{
IImplementsBothMethods obj;
public ClassThatReceivesAnything([dynamic|object] unknownObject)
{
// unknownObject does not implement the interface
obj = unknownObject as IImplementsBothMethods;
}
public void MethodThatDoesNotCare()
{
obj.Method1();
obj.Method2();
}
}
我怎样才能做到这一点?转换只返回 null
谢谢
【问题讨论】:
-
我误解了你的问题吗? public ClassThatReceivesAnything(IImplementsBothMethods obj) {} 不是一个选项吗?