[英]C# Access child members of hierarchy class
如何访问类层次结构的内部成员? 下面有购物车,卡特琳。 我想访问shoppingcart.Product(并且编译器没有看到此内容)。 为了使foreach也能正常工作,我只需要一种最佳方法,如果其他更好的选择(包括类型属性),请告诉我。
public class ShoppingCart : List<CartLine>
{
public ShoppingCart()
{
}
}
public class CartLine
{
public int CartLineId { get; set; }
public Product Product { get; set; }
public int Quantity { get; set; }
}
ShoppingCart shoppingcart = new ShoppingCart();
这不会在Intellisense中显示
shoppingcart.Product
另外,我想让foreach工作
@model ShoppingCart
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CartLineId)
</td>
<td>
@Html.DisplayFor(modelItem => item.Product.ProductId)
</td>
<td>
@Html.DisplayFor(modelItem => item.Product.ProductName)
</td>
<td>
@Html.DisplayFor(modelItem => item.Quantity)
Product
是CartLine
的财产,而不是ShoppingCart
的财产。 为了访问该属性,您的shoppingcart
变量将需要至少一个或多个可通过indexer属性访问的CartLine
对象,而您将访问该特定对象:
var shoppingCart = new ShoppingCart();
shoppingCart[0] = new CartLine { CartLineId = 100, Product = GetTestProduct(), Quantity = 1 };
Console.WriteLine(shoppingCart[0].Product.ToString());
另外,由于ShoppingCart
旨在用作模型类型,因此最好不要基于List<T>
拥有它。 而是尝试这样的事情:
class ShoppingCart
{
public IList<CartLine> Items { get; } = new List<CartLine>();
public ShoppingCart() {}
}
在这种情况下,您将按以下方式访问第一件商品:
shoppingCart.Items[0].Product
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.