【发布时间】:2018-10-14 13:46:29
【问题描述】:
我创建了一个类 Cartline。然后我创建了一个名为 ShoppingCart 的集合。 当我尝试声明 ShoppingCart 时,我收到错误消息。有谁知道解决这个问题?
public class CartLine
{
public int CartLineId { get; set; }
public Product Product { get; set; }
public int Quantity { get; set; }
}
using ShoppingCart = System.Collections.Generic.IEnumerable<ElectronicsStore.Models.CartLine>;
ShoppingCart shoppingcart = new ShoppingCart();
Cannot create an instance of the abstract class or interface 'IEnumerable<CartLine>' ElectronicsStore
【问题讨论】:
-
ShoppingCart 设置为 IEnumerable
,这是一个接口 - 您无法实例化接口。将其更改为 List -
谢谢,为什么不 ShoppingCart shoppingcart = new IEnumerable
(); , 而不是 List? -
@StevenMayer 解释了原因。
IEnumerable<T>是一个接口。您不能创建接口实例,只能创建具体类。 -
我真正想做的是为 (List of Cartlines) = ShoppingCart 创建一个同义词,我如何声明 ShoppingCart,除了一次之外不提及 Cartlines?我想在整个程序中多次声明购物车
-
另外,希望能够访问购物车中的购物车成员,包括产品、数量,并像这样运行 foreach @foreach (var line in shoppingcart.cartline ) { @Html.DisplayFor(modelItem => line.Product) }
标签: c# asp.net-core