gpt4 book ai didi

c# - 在另一个接口(interface) C# 中使用 List

转载 作者:太空狗 更新时间:2023-10-29 22:23:51 25 4
gpt4 key购买 nike

我正在尝试为 ASP.NET MVC2 中的模型类创建一个接口(interface),我想知道我是否可以使用 List<interface>在另一个界面中。最好能给个代码例子。

我有两个接口(interface),一个终端可以有多个盘位。所以我像下面这样编写我的界面。

海湾接口(interface):

public interface IBay
{
// Properties
int id {get; set;}
string name {get;set;}
// ... other properties
}

终端接口(interface):

public interface ITerminal
{
// Properties
int id {get;set;}
string name {get;set;}
// ... other properties
List<IBay> bays {get;set;}
}

我的问题是,当我基于这些接口(interface)实现我的类时,如何设置托架列表。我是否必须在 ITerminal 界面外部和具体实现内部执行托架列表?

我的目标是能够做到以下几点:

具体实现:
海湾类:

class Bay : IBay
{
// Constructor
public Bay()
{
// ... constructor
}
}

终端类:

class Terminal : ITerminal
{
// Constructor
public Terminal()
{
// ... constructor
}
}

然后能够像这样访问托架列表

Terminal.Bays

如有任何帮助/建议,我们将不胜感激。

最佳答案

您可以通过用具体实例填充它来初始化接口(interface)列表。例如,初始化你的 Terminal类使用object and collection initializers ,您可以使用类似于以下的代码:

Terminal terminal = new Terminal
{
id = 0,
name = "My terminal",
bays = new List<IBay>
{
new Bay { id = 1, name = "First bay" },
new Bay { id = 2, name = "Second bay" },
new Bay { id = 3, name = "Third bay" },
}
};

关于您的代码的一些要点:

  • 按照惯例,所有公共(public)属性都应该是 PascalCased。使用 IdID而不是 id ; Name而不是 name ; Bays而不是 bays .
  • 既然您如此强调接口(interface),您应该考虑更改 bays 的类型来自 List<IBay> 的属性(property)至 IList<IBay> .这将允许消费者分配 IBay[]数组。

关于c# - 在另一个接口(interface) C# 中使用 List<interface>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com