C# 在字典/列表中存储类类型

Cxy*_*yda 2 c# unity-game-engine

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

我想做这样的事情:

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

    public FoodNeed()
    {
        consumptionlist.Add (Meat, 0.3f);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

感谢您的帮助

Pet*_*sen 5

我相信您正在寻找typeof来获取肉的类型:

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

    public FoodNeed()
    {
        consumptionlist.Add(typeof(Meat), 0.3f);
    }
}
Run Code Online (Sandbox Code Playgroud)