C#如何将一个结构体数组变量弄成全局变量

这几天,我们专业要进行程序课程设计,鄙人我选了一个关于商品销售的问题,根据题目要求,要我们输入商品的信息,包括名称、单价、单位,因为只是个小程序,数据量不大,只需要10个... 这几天,我们专业要进行程序课程设计,鄙人我选了一个关于商品销售的问题,根据题目要求,要我们输入商品的信息,包括名称、单价、单位,因为只是个小程序,数据量不大,只需要10个商品,题目要求我们不要涉及到数据库,于是我就设了一个结构体,并建了一个数组,代码段如下

首先,我声明了结构体
public struct record
{
public string goodsname;/*商品名称*/
public string scale;/*商品单位*/
public double price;/*商品单价*/
}

然后,我在这一事件中实例化一个record数组初始化了
private void Form1_Load(object sender, EventArgs e)
{
record[] goodsinfo = new record[10];
goodsinfo[0].goodsname = "哇哈哈矿泉水550ml";
goodsinfo[0].scale = "瓶";
goodsinfo[0].price = 1;
goodsinfo[1].goodsname = "康师傅红烧牛肉面";
goodsinfo[1].scale = "袋";
goodsinfo[1].price = 1.5;
…………
}

最后因为商品选购完后要计算总价,我原本打算在完成这一按钮里面的click事件里面引用goodsinfo的一些信息,后来发现不行,然后思考了一下,貌似goodsinfo的这一数组貌似是局部变量,本想在 record[] goodsinfo = new record[10];这一语句前加static的,但提示说,修饰符static对该项无效。。。。于是。。。。。于是。。。。。我这个弱弱地菜鸟只好弱弱的请求大虾们帮忙了,有什么办法让goodsinfo这一数组成为全局变量能被引用? 要有代码示例,谢谢
展开
 我来答
syht2000
高粉答主

推荐于2016-10-30 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
public static record[] goodsinfo;
private void Form1_Load(object sender, EventArgs e)
{
goodsinfo = new record[10];

注:因为不确定商品数量,建议你用List取代数组,也就是形如
public static List<record> goodsinfo;
private void Form1_Load(object sender, EventArgs e)
{
goodsinfo = new List<record>();
record rec=new record();

rec.goodsname = "哇哈哈矿泉水550ml";
rec.scale = "瓶";
rec.price = 1;
goodsinfo.Add(rec);

rec=new record();
rec.goodsname=xxx;
用List的好处是随时可以添加或者删除元素
追问
这样写,在click事件中是不是要重新赋值?
追答
不需要,你在其它地方就可以直接使用goodsinfo[0]、goodsinfo[1]这种来取得数据(如果是在其它类中调用,假定你这个goodsinfo所在类叫form1,那就可以在其它地方用form1.goodsinfo来调。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式