2015-05-22 3 views
1

Есть ли способ сохранить тип класса, а не экземпляр класса в моем словаре/списке?C# Сохранить тип класса в словаре/списке

Я хочу сделать что-то вроде этого:

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

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

Мясо это классно, и вместо добавления «новое мясо()» в dictionaray я просто хочу, чтобы сохранить тип (обусловленно я думаю, что нет необходимости создавать полный instace только для типа), возможно ли это? Или мне нужно хранить, например, «Мясо» как строку, и проанализировать это позже. Или что-то вроде этого неважно, и это нужно делать по-другому.

Спасибо за вашу помощь

+2

Кажется, вы уже сделали это , В чем проблема? –

+3

Конечно, вам просто нужно 'typeof (Meat)'. Затем он должен скомпилироваться. –

+0

omg -.- Мэтью Уотсон СПАСИБО !! Это помогло! Я всегда получал ошибку: Выражение обозначает 'type ', где ожидали« переменную »,« значение »или« группу методов » ... извините ... но я просто noob xD – Cxyda

ответ

4

Я считаю, что вы ищете typeof, чтобы получить вид мяса:

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

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

Пожалуйста, используйте typeof,

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

    public FoodNeed() 
    { 
     consumptionlist.Add (typeof(Meat), 0.3f); 
    } 
} 
Смежные вопросы