C#Store Class Type in Dictionary / List

时间:2015-05-22 11:54:07

标签: c# unity3d

有没有办法在我的词典/列表中存储类类型而不是类的实例?

我想做这样的事情:

column_ratio[x]=(float(column1[y]))/(float(column2[z]))    TypeError: tuple indices must be integers, not str

肉类是类,而不是在dictionaray中添加“ new Meat()”而只是想存储类型(因为我认为没有必要为类型创建完整的实例),这可能吗?或者我必须将“Meat”存储为字符串并稍后解析。或者这是一个很大的禁忌,这必须以不同的方式完成。

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

我相信你正在寻找typeof来获得肉类:

public class FoodNeed : BaseNeeds
{
    public Dictionary<Type, float> consumptionlist = new Dictionary<Type, float>();

    public FoodNeed()
    {
        consumptionlist.Add(typeof(Meat), 0.3f);
    }
}

答案 1 :(得分:1)

请使用typeof

public class FoodNeed : BaseNeeds
{
    public Dictionary<Type, float> consumptionlist = new Dictionary<Type, float>();

    public FoodNeed()
    {
        consumptionlist.Add (typeof(Meat), 0.3f);
    }
}