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等. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在iPhone中存储身份验证令牌的位置
- c# – WPF:TreeViewItem绑定到ICommand
- 通过fsharp探索Enterprise Library 6 DataBase 1.3 Sqlite
- ruby-on-rails – EOFError:文件结束 – 所有js规格都在使
- 为什么我们不能使用预处理器来创建自定义分解字符串?
- c# – 每次path.getrandomfilename会生成一个唯一的文件名吗
- Cocos2d-x《雷电大战》(6) 智能敌机AI来袭--飞行路径算法设
- ruby-on-rails – “无法在任何源中找到activesupport”,即
- 【ant-ci】build_findbugs.xml 代码
- 辛星浅析字符模式匹配中的u模式修正符