在c#中测试对象是否实现给定接口的最简单方法是什么?(回答这个问题 在Java中)
当前回答
最近我试着用安德鲁·凯南的答案,但出于某种原因,它对我不起作用。我使用了这个方法,并且它有效(注意:可能需要写入名称空间)。
if (typeof(someObject).GetInterface("MyNamespace.IMyInterface") != null)
其他回答
我通过使用is关键字实现了这一点。
但是我也需要一个新的对象来使用接口属性。 要实现这一点,您需要在Interface之后添加新变量。
objectToCheck is Interface newVariableWithInterfaceProperties
.
public async Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken,
RequestHandlerDelegate<TResponse> next)
{
if (request is ICacheableQuery cachableRequest)
{
// here cachableRequest now has the interface properties.
}
}
if (object is IBlah)
or
IBlah myTest = originalObject as IBlah
if (myTest != null)
最近我试着用安德鲁·凯南的答案,但出于某种原因,它对我不起作用。我使用了这个方法,并且它有效(注意:可能需要写入名称空间)。
if (typeof(someObject).GetInterface("MyNamespace.IMyInterface") != null)
例如:
if (obj is IMyInterface) {}
本课程:
检查typeof(MyClass). getinterfaces()是否包含该接口。
我使用
断言。(myObject是ImyInterface);
在我的单元测试中测试myObject是一个实现了我的接口ImyInterface的对象。