gpt4 book ai didi

c# 购物车

转载 作者:太空宇宙 更新时间:2023-11-03 17:13:44 29 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

4年前关闭。




Improve this question




我一直在查看这段代码来创建一个基本的购物车,但缺点是它使用静态方法,因此购物车项目(当添加到购物车时)在 session 之间共享。有人可以指出如何修改 ShoppingCart 方法以消除此限制吗?

Full Code reference is here

但我确定这是有问题的代码

// Readonly properties can only be set in initialization or in a constructor
public static readonly ShoppingCart Instance;

// The static constructor is called as soon as the class is loaded into memory
static ShoppingCart() {
// If the cart is not in the session, create one and put it there
// Otherwise, get it from the session
if (HttpContext.Current.Session["ASPNETShoppingCart"] == null) {
Instance = new ShoppingCart();
Instance.Items = new List<CartItem>();
HttpContext.Current.Session["ASPNETShoppingCart"] = Instance;
} else {
Instance = (ShoppingCart)HttpContext.Current.Session["ASPNETShoppingCart"];
}
}

// A protected constructor ensures that an object can't be created from outside
protected ShoppingCart() { }

public void AddItem(int productId) {
// Create a new item to add to the cart
CartItem newItem = new CartItem(productId);

// If this item already exists in our list of items, increase the quantity
// Otherwise, add the new item to the list
if (Items.Contains(newItem)) {
foreach (CartItem item in Items) {
if (item.Equals(newItem)) {
item.Quantity++;
return;
}
}
} else {
newItem.Quantity = 1;
Items.Add(newItem);
}
}

最佳答案

我使用过几个商业购物车,每个购物车都将购物车存储在数据库中,甚至在结账之前,并且只在 session.id 中存储了一个 session ID。该 SessionID 绑定(bind)到临时购物车中的字段。

我强烈建议遵循相同的模式。假设您的网站非常受欢迎。在内存中存储太多数据(无论是在 session 中还是在应用程序中)你会遇到问题。

关于c# 购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10250288/

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