我可以使用哪种具体类型来实例化ICollection <t> </t>类型的变量

时间:2014-08-30 19:59:28

标签: c# asp.net-mvc entity-framework collections

我有一个班级:

public class A {
        public int Id { set; get; }
        public virtual ICollection<B> Bs { set; get; }
}

我想在类A中添加一个构造函数,它实例化ICollection类型的属性。我可以使用哪种类型?

1 个答案:

答案 0 :(得分:1)

实例化ICollection ......

public class A {
    public A() 
    {
        this.Bs = new Collection<B>();
    }

    public int Id { get; set; }
    public virtual ICollection<B> Bs { get; set; }
}

以下是您可能会发现有用的界面的快速介绍......

ICollectionInterface,这意味着它是Contract的{​​{1}}。

例如,如果我说Class的{​​{1}}必须为Car,我会创建一个名为Seats的{​​{1}},并在其上创建一个名为{{}的属性1}}。

Interface

由于这只是ICar我们无法直接实例化,我们需要Seats来实现此合同。

public interface ICar {
    int Seats { get; set; }
}

现在我们可以实例化Interface,因为Class实现了public class Car : ICar { public int Seats {get; set; } } 接口。这与内部使用ICar car = new Car();类和Class Car类的内容没有什么不同,它们都实现了ICollection。