接口可以是函数的返回类型.如果是的话那就是优势.例如,以下代码更正在返回接口数组的位置.
public interface Interface
{
int Type { get; }
string Name { get; }
}
public override Interface[] ShowValue(int a)
{
.
.
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*oud 19
是的,interface是一个非常有效的返回值.请记住,您不是返回接口的定义,而是返回该接口的实例.
好处很明显,请考虑以下代码:
public interface ICar
{
string Make { get; }
}
public class Malibu : ICar
{
public string Make { get { return "Chevrolet"; } }
}
public class Mustang : ICar
{
public string Make { get { return "Ford"; } }
}
Run Code Online (Sandbox Code Playgroud)
现在您可以返回许多ICar具有各自值的不同实例.
但是,使用接口的主要原因是它们可以在一个众所周知的合同中的程序集之间共享,这样当你传递给某人时ICar,他们对此一无所知,但他们知道它有一个Make.此外,除公共接口外,它们不能执行任何操作.因此,如果Mustang有一个public名为成员的成员Model,除非它在界面中,否则无法达到.
One*_*rew 17
是的,您可以返回一个界面.
让我们说类A和B每个实现接口Ic:
public interface Ic
{
int Type { get; }
string Name { get; }
}
public class A : Ic
{
.
.
.
}
public class B : Ic
.
.
.
}
public Ic func(bool flag)
{
if (flag)
return new A();
return new B();
}
Run Code Online (Sandbox Code Playgroud)
在这个例子func中就像工厂方法 - 它可以返回不同的对象!
是的,它可以.
好处是您可以抽象返回(和输入)类型.
public interface IFruit{ }
public class Apple: IFruit{}
public class Pear: IFruit{}
...
public function IFruit SelectRandomFromBasket(Basket<IFruit> basket){
// this function can return Apple, Pear
}
Run Code Online (Sandbox Code Playgroud)
是的,这是可能的,这对公共职能来说是件好事.
对于你问题的部分原因,我不会复制粘贴其他人的答案,所以请参考现有的答案,例如:
| 归档时间: |
|
| 查看次数: |
29984 次 |
| 最近记录: |