当前位置: 代码迷 >> C# >> list为何不能调用?
  详细解决方案

list为何不能调用?

热度:139   发布时间:2016-05-05 02:47:31.0
list为什么不能调用??
namespace 仓库类
{
    class CangKu
    {
        //第一个功能:存储货物
        //list[0]存储Acer笔记本电脑
        //list[1]存储三星手机
        //list[2]存储酱油
        //list[3]存储香蕉
        //List<FatherProduct> list1 = new List<FatherProduct>();
        List<List<FatherProduct>> list = new List<List<FatherProduct>>();//这里的List<FatherProduct>相当于货柜
        /// <summary>
        /// 在创建仓库对象的时候,向仓库中添加货架
        /// </summary>
        public CangKu()
        {
            list.Add(new List<FatherProduct>());
            list.Add(new List<FatherProduct>());
            list.Add(new List<FatherProduct>());
            list.Add(new List<FatherProduct>());
        }
        //进货
        public static void GetProducts(string type,int count)
        {
            for (int i = 0; i < count; i++)
            {
                switch(type)
                {
                    case "Acer":list[0].Add(new Acer(Guid.NewGuid().ToString(), 4000, "宏基笔记本"));
                        break;
                    case "Samsung":list[1].Add(new Samsung(Guid.NewGuid().ToString(), 3000, "三星手机"));
                        break;
                    case "Banana":list[2].Add(new Banana(Guid.NewGuid().ToString(), 10, "香蕉"));
                        break;
                    case "JiangYou":list[3].Add(new JiangYou(Guid.NewGuid().ToString(), 20, "老抽"));
                        break;
                }
            }
        }


    }
}

什么原因呢?
------解决思路----------------------
你这是静态方法调用非静态变量,此异常只需去掉方法修饰符static,或者给list变量定义时加上static修饰符。
我看你list[]里的元素是List<FatherProduct>类型,你下面的add操作中,像new Acer(,,)这些是在干啥?实例化吗?是list类型吗?到时我看要出错了吧。
  相关解决方案