interface as return type
接口不能是函数的返回类型。如果是,那有什么好处。例如,在返回接口数组的位置,以下代码是否正确?
1 2 3 4 5 6 7 8 9 10 11 12 | public interface Interface { int Type { get; } string Name { get; } } public override Interface[] ShowValue(int a) { . . } |
是的,
好处很明显,请考虑以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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"; } } } |
现在,您可以返回许多不同的
但是,使用接口的主要原因是它们可以在一个众所周知的契约中在程序集之间共享,这样当您向某人传递一个
是的,您可以返回一个接口。
假设类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
在本例中,
是的,可以。
好处是您可以抽象返回(和输入)类型。
1 2 3 4 5 6 7 8 9 10 11 | public interface IFruit{ } public class Apple: IFruit{} public class Pear: IFruit{} ... public function IFruit SelectRandomFromBasket(Basket<IFruit> basket){ // this function can return Apple, Pear } |
是的,这是可能的,对公共职能来说是件好事。
对于您问题的原因部分,我不会复制粘贴其他人的答案,因此请参考现有答案,例如:
- list
或ilist - 方法返回接口
- https://stackoverflow.com/a/3564291/870604