从代码我们如何知道一个类实现了哪些接口(interface)?
例子:
interface IDrink
interface IEat
class Milk : IDrink
class Water: IDrink
class Potato: IEat
我想知道 Potato 是否实现了 IDrink。我该怎么做?
.
使用:
我有一种方法可以接收一个“
object 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!");
}
}
o
实现了多少接口(interface)并不重要 - 在这里你只对它是 IDrink
感兴趣。如果你想得到一个完整的列表,你必须使用反射( System.Reflection
):Type [] interfaces = myObject.GetType().GetInterfaces();
当然,
myObject
不应该是 null
- 因为 null
没有类型。然后您可以检查 interfaces
是否包含 IDrink
、 IEat
等。关于c# - 一个类实现哪些接口(interface)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1384357/