Есть класс A.
От него наследуются несколько(неопределённое количество) классов.
Пускай это быдет массив
Type[] types;
Как мне написать функцию , которая создавала бы новый экземпляр нужного класса по индексу в этом массиве.
Или допустим так, я создаю экземпляр родительского класса
A aa=new A();
Как мне его привести к одному из классов наследников динамически, (допустим по индексу в том же массиве)?
Спасибо.
Здравствуйте, Haccel, Вы писали:
H>Как мне написать функцию , которая создавала бы новый экземпляр нужного класса по индексу в этом массиве.
Type[] types;
...
public object CreateInstance(int id)
{
return CreateInstance(types[id]);
}
public object CreateInstance(Type t)
{
ConstructorInfo ci = t.GetConstructor(Type.EmptyTypes);
return ci.Invoke(null);
}
Здравствуйте, nerozero, Вы писали:
N>Здравствуйте, Haccel, Вы писали:
H>>Как мне написать функцию , которая создавала бы новый экземпляр нужного класса по индексу в этом массиве.
N>N>Type[] types;
N>...
N>public object CreateInstance(int id)
N>{
N> return CreateInstance(types[id]);
N>}
N>public object CreateInstance(Type t)
N>{
N> ConstructorInfo ci = t.GetConstructor(Type.EmptyTypes);
N> return ci.Invoke(null);
N>}
N>
Пока ждал ответа, до первого варианта сам допетрил.
Спасибо.
Мой поклон до земли...
H>Или допустим так, я создаю экземпляр родительского класса
H>H>A aa=new A();
H>
H>Как мне его привести к одному из классов наследников динамически, (допустим по индексу в том же массиве)?
невозможно. любой слон может стать млекопитающим, но не любое млекопитающее может стать слоном.