关于C#静态对象数组的问题

yiranfantexi44 2013-08-23 01:53:04
因为在几个不同的工程里面都要用到30件商品的条形码,名称,价格等信息,所以在库类工程里,我先建立了一个Product类,然后实例化了一个静态的Product对象数组products[],但在另一个工程里面引用products[]的时候却报错,是“System.NullReferenceException”,可在类库工程里我已经声明过这个静态对象数组了呀,难道工程间不能这样引用吗?希望各位好友帮忙
...全文
327 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
咖啡豆2013 2013-08-23
  • 打赏
  • 举报
回复
感觉把类设计成带索引器的方式也不错的
moonwrite 2013-08-23
  • 打赏
  • 举报
回复
public static Product[] products; static Product()//静态构造函数,只会运行一次 { products = new Product[30]; .... }
q107770540 2013-08-23
  • 打赏
  • 举报
回复
public class Product
    {
        public string name="undefined";     //名称
        public float price=-1;              //价格
        public long labelnum=-1;            //条形码
        public int type=-1;                 //分类
        public void product() 
        {
        }

        public static Product[] GetProducts()
        {
           Product[] products;
           products = new Product[30];
           ...
           return products
         }
    }
yiranfantexi44 2013-08-23
  • 打赏
  • 举报
回复
引用 6 楼 lhx527099095 的回复:
单例确实可以解决你的问题 呵呵 楼主可以适当看看设计模式
我看了单例模式,它要求整个工程中只能有一个实例,而我要用到对象数组,也就是有30个对象,这种情况能不能用单例模式啊?
yiranfantexi44 2013-08-23
  • 打赏
  • 举报
回复
引用 11 楼 yangsen600 的回复:
[quote=引用 10 楼 yiranfantexi44 的回复:] [quote=引用 9 楼 yangsen600 的回复:] [quote=引用 7 楼 yiranfantexi44 的回复:] [quote=引用 3 楼 q107770540 的回复:] Product类怎么定义的 对象数组products[]又是怎么定义的
Product对象定义: public class Product { public string name="undefined"; //名称 public float price=-1; //价格 public long labelnum=-1; //条形码 public int type=-1; //分类 public void product() { } } produtcts[]定义: public static Product[] products; products = new Product[30]; 紧接着后面就是给每个对象赋值 [/quote] null,说明没有执行你这个类中的赋值,可以在外边给值。[/quote] 对我明白你的意思,但数据挺多的,外面赋值稍麻烦,我想把整个对象数组封装起来:)[/quote] 分装起来,在外面创建一个Product的对象赋值。[/quote] 这样可以,我想问可不可以在类库工程里赋值来实例化对象数组,然后直接在其他工程里调用这个对象数组?
千杯不醉-sen 2013-08-23
  • 打赏
  • 举报
回复
引用 10 楼 yiranfantexi44 的回复:
[quote=引用 9 楼 yangsen600 的回复:] [quote=引用 7 楼 yiranfantexi44 的回复:] [quote=引用 3 楼 q107770540 的回复:] Product类怎么定义的 对象数组products[]又是怎么定义的
Product对象定义: public class Product { public string name="undefined"; //名称 public float price=-1; //价格 public long labelnum=-1; //条形码 public int type=-1; //分类 public void product() { } } produtcts[]定义: public static Product[] products; products = new Product[30]; 紧接着后面就是给每个对象赋值 [/quote] null,说明没有执行你这个类中的赋值,可以在外边给值。[/quote] 对我明白你的意思,但数据挺多的,外面赋值稍麻烦,我想把整个对象数组封装起来:)[/quote] 分装起来,在外面创建一个Product的对象赋值。
yiranfantexi44 2013-08-23
  • 打赏
  • 举报
回复
引用 9 楼 yangsen600 的回复:
[quote=引用 7 楼 yiranfantexi44 的回复:] [quote=引用 3 楼 q107770540 的回复:] Product类怎么定义的 对象数组products[]又是怎么定义的
Product对象定义: public class Product { public string name="undefined"; //名称 public float price=-1; //价格 public long labelnum=-1; //条形码 public int type=-1; //分类 public void product() { } } produtcts[]定义: public static Product[] products; products = new Product[30]; 紧接着后面就是给每个对象赋值 [/quote] null,说明没有执行你这个类中的赋值,可以在外边给值。[/quote] 对我明白你的意思,但数据挺多的,外面赋值稍麻烦,我想把整个对象数组封装起来:)
千杯不醉-sen 2013-08-23
  • 打赏
  • 举报
回复
引用 7 楼 yiranfantexi44 的回复:
[quote=引用 3 楼 q107770540 的回复:] Product类怎么定义的 对象数组products[]又是怎么定义的
Product对象定义: public class Product { public string name="undefined"; //名称 public float price=-1; //价格 public long labelnum=-1; //条形码 public int type=-1; //分类 public void product() { } } produtcts[]定义: public static Product[] products; products = new Product[30]; 紧接着后面就是给每个对象赋值 [/quote] null,说明没有执行你这个类中的赋值,可以在外边给值。
yiranfantexi44 2013-08-23
  • 打赏
  • 举报
回复
引用 4 楼 phommy 的回复:
在Product的静态构造函数里构造这个数组是保险的
我是直接在class开头定义的,我去试试你说的的方法
yiranfantexi44 2013-08-23
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
Product类怎么定义的 对象数组products[]又是怎么定义的
Product对象定义: public class Product { public string name="undefined"; //名称 public float price=-1; //价格 public long labelnum=-1; //条形码 public int type=-1; //分类 public void product() { } } produtcts[]定义: public static Product[] products; products = new Product[30]; 紧接着后面就是给每个对象赋值
lhx527099095 2013-08-23
  • 打赏
  • 举报
回复
单例确实可以解决你的问题 呵呵 楼主可以适当看看设计模式
yiranfantexi44 2013-08-23
  • 打赏
  • 举报
回复
引用 1 楼 yangsen600 的回复:
看到这二个让我想起了设计模式中的单例模式,LZ可以试一下。
行,我去看看(其实我都没听过单例模式。。)
phommy 2013-08-23
  • 打赏
  • 举报
回复
在Product的静态构造函数里构造这个数组是保险的
q107770540 2013-08-23
  • 打赏
  • 举报
回复
Product类怎么定义的 对象数组products[]又是怎么定义的
千杯不醉-sen 2013-08-23
  • 打赏
  • 举报
回复
引用 1 楼 yangsen600 的回复:
看到这二个让我想起了设计模式中的单例模式,LZ可以试一下。
看到这个问题让我想起了设计模式中的单例模式,LZ可以试一下。
千杯不醉-sen 2013-08-23
  • 打赏
  • 举报
回复
看到这二个让我想起了设计模式中的单例模式,LZ可以试一下。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧