加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 一个类实现哪些接口?

发布时间:2020-12-15 19:54:35 所属栏目:百科 来源:网络整理
导读:从代码中我们如何知道一个类实现哪些接口? 例: interface IDrinkinterface IEatclass Milk : IDrink class Water: IDrink class Potato: IEat 我想知道Potato是否实现了IDrink.我该怎么做? . 使用此: 我有一个接收一个“对象myObject”的方法,我需要看看
从代码中我们如何知道一个类实现哪些接口?

例:

interface IDrink
interface IEat

class Milk : IDrink    
class Water: IDrink    
class Potato: IEat

我想知道Potato是否实现了IDrink.我该怎么做?

.

使用此:

我有一个接收一个“对象myObject”的方法,我需要看看是否将它转换为IDrink或IEat.

解决方法

您可以强制转换它(可能会抛出异常)或使用as运算符.

private void DrinkIt(Object o) {
    IDrink possibleDrink = o as IDrink;

    if (possibleDrink == null)
        Console.WriteLine("Not a drink!");
    else {
        ChugItDown(possibleDrink);
        Console.WriteLine("That hit the spot!");
    }
}

它实现了多少接口并不重要 – 如果它是IDrink,那么你只对它感兴趣.如果要获取完整列表,则必须使用反射(System.Reflection):

Type [] interfaces = myObject.GetType().GetInterfaces();

当然,myObject不应该为null – 因为null没有类型.然后,您可以检查接口是否包含IDrink,IEat等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读