mas*_*ani 6 c# methods interface return-value
我看到很多方法将接口指定为返回值.我的想法是真的,这意味着:我的方法可以返回从该接口继承的每个类类型?如果没有,请给我一个很好的答案.
And*_*are 11
是的,您的方法可以返回任何实现该接口的类型.
这是一个例子:
using System;
class Foo
{
public IComparable GetComparable()
{
// Either of these return statements
// would be valid since both System.Int32
return 4;
// and System.String
return "4";
// implement System.IComparable
}
}
Run Code Online (Sandbox Code Playgroud)
是的,这意味着您唯一知道的返回对象是它实现了接口.
实际上,调用代码甚至可以访问对象的实际类型.它可以是单独程序集中的私有类型.
实际上,该方法可以从一次调用返回到下一次调用的不同类型(如抽象工厂的情况).