C#中的基本接口

感觉

我需要某种方式来标记基本接口并标识类是否实现了基本接口或其派生接口。C#不允许使用“抽象接口”。有什么办法可以在C#中做到这一点?

public interface IBaseFoo
{
     void BaseMethod();
}

public interface IFoo : IBaseFoo
{
     void FooMethod();
}

public class Base
{

}

public class A : Base, IFoo
{

}

public class B : Base, IBaseFoo
{

}

现在,在下面的方法中,我需要检查是否typeCls实现了IFooIBaseFoo没有明确指定类型。我需要一种标记基本接口并在方法中标识它的方法。(即:如果c#允许具有抽象接口,则可以检查IsAbstract的接口的属性typeClas

public bool IsBaseFooImplemented<T>(T typeCls) where T : Base
{
     // Here I need to check if the typeCls is implemented the IFoo or IBaseFoo
}
CodeCaster

因为IFoo : IBaseFoo,每个实现的类IFoo也都实现IBaseFoo但不是相反的方式,因此您可以简单地检查是否typeCls is IFoo

请注意,基于已实现的接口更改行为通常是一种设计气味,首先会绕过接口的使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过C#中的反射获取接口的基本接口

来自分类Dev

C#从接口方法调用基本方法

来自分类Dev

C#接口继承-无法识别基本接口方法

来自分类Dev

在C#中应为通用接口基本类型时,如何传递方法参数?

来自分类Dev

与C#中的方法的接口?

来自分类Dev

C#扩展接口实现作为要委派的参数,采用基本接口

来自分类Dev

在F#中实现C#接口

来自分类Dev

在C#中获取基础接口的属性

来自分类Dev

C#中的多接口继承

来自分类Dev

在C#中创建接口的对象

来自分类Dev

C#中的接口多态性

来自分类Dev

C#中通用接口的简写语法

来自分类Dev

C#中的数据存储库接口

来自分类Dev

C#中的匿名接口回调

来自分类Dev

在C#中声明接口继承

来自分类Dev

接口C#中的具体方法

来自分类Dev

C#中的继承接口

来自分类Dev

C#中的数据存储库接口

来自分类Dev

在C#中实现通用接口

来自分类Dev

在F#中实现C#接口

来自分类Dev

C#子类或接口?

来自分类Dev

了解接口C#

来自分类Dev

C#子类或接口?

来自分类Dev

是否可以在接口的派生类中仅使用C#中的该接口的某些方法?

来自分类Dev

C#接口实现中的重载等于

来自分类Dev

在C#中实现2个相似的接口

来自分类Dev

如何在C#中获取接口的当前MTU

来自分类Dev

C#中静态接口方法的替代方法

来自分类Dev

了解Java / C#中的抽象和接口