В c#, как получить тип в формате ie раз - PullRequest
0 голосов
/ 07 мая 2020

в Object- C, мы можем использовать опечатку для получения типа во время компиляции, например

Myclass *A = new A;
typeof(A) b = A;

есть ли что-то знакомое в c#?


редактировать 1

что я хочу сделать

//i have a generic function like this, and i can't change it
T getV<T>(string parm)

// i have many members with different type in a class ClassUser
ClassA a;
ClassB b;
Action<int, string, LonglonglonglongClass> c;
...

// when i initialize a ClassUser,i had to write like this 
a = getV<ClassA>("a");
b = getV<ClassB>("b");
c = getV<Action<int, string, LonglonglonglongClass>>("c");
...

//  as you can see , it's annoying, i'd like to write like this
a = getV<typeof(a)>("a");
b = getV<typeof(b)>("b");
c = getV<typeof(c)>("c");
...

редактировать 2

найти обходной путь

// wrap the getV
void getV2<T>(string parm ,out T ret)
{
   ret = getV<T>(parm);
}

// write like this
getV2("a" ,out a);

1 Ответ

2 голосов
/ 07 мая 2020
Myclass A = new Myclass();

Type objectType = typeof(Myclass);

или

Type objectType = A.GetType();
...