【问题标题】:Interfaces as return type [duplicate]接口作为返回类型[重复]
【发布时间】:2018-07-23 22:31:12
【问题描述】:

我不明白一个方法如何返回一个接口对象,以及它的参数如何是接口,比如这个方法:

public static IConfigurationBuilder AddJsonFile(this IConfigurationBuilder builder, IFileProvider provider);

谁能提供一个简单的例子来证明这一点?

【问题讨论】:

  • 这意味着它返回一个实现该接口的对象,同样它接受一个实现该接口的对象作为参数
  • 具体有什么不明白的?你了解什么是接口,以及它们是如何使用的吗?
  • 你的意思是它返回一个继承自该接口@Jonathon Reinhart 的类的对象
  • 不清楚你在这里问什么,特别是因为你在......举个例子之后就要求一个例子。是不是你不明白一个方法返回一个接口类型意味着什么,或者一个方法已经接受了同一个接口的参数时可能返回什么接口类型?
  • @BACON 我不明白方法返回接口类型意味着什么

标签: c# interface


【解决方案1】:

返回类型为IConfigurationBuilder。在这种情况下,这仅仅意味着返回的对象将是任何显式实现该接口的对象。我的意思是返回对象必须定义为:

public class MyConfigurationBuilder : IConfigurationBuilder
{
    ... Required methods go here ...
}

该对象还可以实现其他接口、具有基类等,只要它还具体明确地实现所需的接口即可。这使得调用方法除了提供特定接口所需的方法外,对对象没有其他期望。

【讨论】:

  • 没关系,但是当我向接口类型的方法提供参数并且我没有像上面的示例那样实现这个接口时它是如何工作的 AddJsonFile(IFileProvider provider);
  • @MahmoudAdel 如果不实现接口,代码将无法编译
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
  • 2019-01-15
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 2017-04-06
相关资源
最近更新 更多