我正在使用具有多个用户控件的WinForm为不同的项目页面创建移动订购应用程序。我无法制作我的cartList,它存储添加的项目,我的TeaItem类可以从其他页面访问。我环顾四周,找到了不同的解决方案但没有任何效果。现在,我在项目中为我的cartList和我的TeaItem单独添加了一个类。 (这是一家茶店)
这是我的代码"添加到购物车"用户控制:(" AddMenu.cs")
public partial class AddMenu : UserControl
{
public AddMenu()
{
InitializeComponent();
}
public void addToCart_Click(object sender, EventArgs e)
{
GlobalCartList.cartList.Add(new TeaItem() { teaName = addTeaNameLabel, teaSize = addSizeComboBox.SelectedItem });
# cartList, teaName, and teaSize give me the inaccessible errors
}
# more code
}
购物车清单的单独类:(" GlobalCartList.cs")
public class GlobalCartList
{
List<TeaItem> cartList = new List<TeaItem>();
}
和茶项目:(&#34; TeaItem.cs&#34;)
public class TeaItem
{
string teaName;
string teaSize;
}
有人能说出我为什么还会收到这个错误吗?
答案 0 :(得分:0)
您正在尝试获取卡片列表,因为它是静态的,但它实际上是GlobalCartList
类的非静态成员:
其次,您试图让它像公共成员一样,但cardlist
是私有的。
// Here you try to access like it is an static public member.
GlobalCartList.cartList.Add(...)
要调用cardlist
,您必须将其公开,以便可以在GlobalCartList
类之外调用它。其次,你必须使cardlist
静态,这样你就可以在不创建GlobalCartList
类的实例的情况下调用它。
public class GlobalCartList
{
public static List<TeaItem> cartList = new List<TeaItem>();
}
这是TeaItem
使其成员公开:
public class TeaItem
{
public string teaName;
public string teaSize;
}
请注意,如果未在成员前面指定
public
,则通过defautlt 该成员是private
,默认情况下是一个类的成员 是none static
。
答案 1 :(得分:0)
这是因为默认情况下List<TeaItem> cartList
是私有的。您应该添加公共(或内部)访问修饰符。
也许它应该是静态的,因为你没有实例化GlobalCartList类。
public class GlobalCartList
{
public static List<TeaItem> cartList = new List<TeaItem>();
}