У меня есть метапрограмма, которая должна создать код для инициализации полей значений.Т.е. есть класс
class Class1
{
int i;
double t;
Class1()
{
i=5;
t=3;
}
}
В отражении это выглядит следующим образом:
...
gen.Emit(OpCodes.Ldc_I4,5);
...
gen.Emit(OpCodes.Ldc_R8,3);
...
Я не хочу иметь такой огромный переключатель:
switch(t)
{
case typeof(int): gen.Emit(OpCode.Ldc_I4,value); break;
case typeof(double): gen.Emit(OpCodes.Ldc_R8,value); break;
// and so on for all value types
}
Есть ли какое-то универсальное значение нагрузки в OpCode стека оценки?Или мне нужен переключатель, упомянутый выше?