【问题标题】:C# Is it possible to add new item to List of interface? [closed]C#是否可以将新项目添加到界面列表中? [关闭]
【发布时间】:2018-06-21 09:50:56
【问题描述】:

我想问一下是否可以将一个项目添加到界面列表中? 示例:

我有一个界面列表:

List<ITestItem> testList = new List<ITestItem>();

我想在该列表中添加一个新项目。但我找不到从ITestItem 创建新实例的方法。

此外,没有实现接口ITestItem的类。

那么,有没有办法给ITestItem添加一个新项目?

我想要的只是:

List<ITestItem> testList = new List<ITestItem>();
testList.Add(new ITestItem());

先谢谢你了。

注意:我的问题是问是否可能。如果没有,我没关系。

【问题讨论】:

  • 你希望从这个接口创建的一些随机类做什么,什么类将控制合约的逻辑?
  • 当没有实现接口的类时,您的列表包含哪些实例?没有接口实例这样的东西,因为接口没有实例,它们只是 existing 实例上的 view.. 所以如果有没有实现接口的类,您无法创建实例,因此您无法添加它的实例。我不太清楚你到底想把什么添加到你的列表中。
  • 这个问题正在成为误解的坟墓。请更新您的问题,详细说明您为什么需要 create a new instance from ITestItem 为什么需要这个,您将如何处理它
  • @TheGeneral 这就是为什么我投票结束这个问题的原因。
  • @All:对不起,我犯了一个错误。我找到了一个实现接口的类。

标签: c# interface


【解决方案1】:

您不能创建接口的实例,但可以创建实现接口的类的实例。
只要您添加的对象是实现ITestItem 的类的实例,它就可以添加到您的List&lt;ITestItem&gt;

例子:

public class SomeListItem : IListItem
{

}

var item = new SomeListItem();

testList.Add(item);

或者(并且可能更有可能)会有一个类已经在具有IlistItem的代码中的某处实现IListItem

【讨论】:

  • @HimBromBeere - 这就是为什么我要创建一个类...这是唯一的方法!
  • @HimBromBeere 他说没有实现接口的类,为什么不写一个?
  • 没错! OP 说没有实现接口的类。答案是写一个。不反对告诉他编写一个实现接口的类的答案?!
  • @anhtv13 您无需编辑客户的代码。如果您能够创建该接口的列表,则可以将其实现为类。
  • @HimBromBeere 正如所有其他在这里评论的人所说,可以创建一个实现该接口的类......如果 OP 可以创建它的列表!
【解决方案2】:

不,您不能实例化接口。您需要创建一个实现该接口的类。

【讨论】:

    【解决方案3】:

    不,接口不可实例化。您需要一个实现您的接口的类,并实例化该类的一个实例,然后您可以将其添加到您的列表中。

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2013-09-22
      • 2020-05-23
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多