В первой реализации JavaScript значения JavaScript были представлены как тег типа и значение, причем тег типа для объектов, являющихся 0
, и null
был представлен как указатель NULL
(0x00
on большинство платформ). В результате, null имел 0
как тег типа, поэтому возвращаемое значение fog typeof
( reference ).
typeof null === 'object'; // This stands since the beginning of JavaScript
Было предложено «исправить» для ECMAScript (через опцию). Это привело бы к:
typeof null === 'null'
... но это изменение было отклонено , из-за проблем с кодом, используя этот конкретный «quirk» для проверки на null
.
Возможно, это поможет вам.
public class CartLine
{
public int CartLineId { get; set; }
public int ProductId { get; set; }
public int Quantity { get; set; }
}
public class ShoppingCart : List<CartLine>
{
public ShoppingCart()
{
}
}
public class ShoppingCartRepository
{
private ShoppingCart ShoppingCart = new ShoppingCart();
public IEnumerable GetShoppingCart()
{
return ShoppingCart.ToList();
}
public virtual void AddItem(int productid, int quantity)
{
ShoppingCart.Add(new CartLine
{
ProductId = productid,
Quantity = quantity
});
}
public virtual void RemoveItem(int cartlineid)
{
ShoppingCart.RemoveAll(l => l.CartLineId == cartlineid);
}
}
Я меняю класс, чтобы сделать его общим. Проблема, я думаю, заключается в том, что вы делаете свой общий список ShoppingCart
, но вы хотите добавить CartLine
.
Надеюсь, это поможет вам.
Я не уверен, почему вы пытаетесь переместить корзину из магазина, но есть много проблем с кодом
List<CartLine> ShoppingCart
в class ShoppingCartRepository
. Прямо сейчас вы создаете его внутри конструктора. Это не сделает свойство / поле ShoppingCart
класса. ToList()
не является частью List
. Таким образом, вы не сможете использовать его, если вы явно не определяете его. Но не знаете, почему вам нужно называть ToList()
на элементе List
. List<ShoppingCart>
, вместо этого используйте интерфейс - IList<T>
. Это поможет вам с насмешкой / тестированием. Что еще более важно, я не вижу никакой ценности, добавляемой в то, что вы пытаетесь сделать. Если вы можете предоставить более подробную информацию об этом, возможно, я могу предоставить более подробную информацию.