Help. C# Приведение к анонимному типу
От: Haccel  
Дата: 07.09.08 04:23
Оценка:
Есть класс A.
От него наследуются несколько(неопределённое количество) классов.
Пускай это быдет массив

 Type[] types;



Как мне написать функцию , которая создавала бы новый экземпляр нужного класса по индексу в этом массиве.

Или допустим так, я создаю экземпляр родительского класса


A aa=new A();



Как мне его привести к одному из классов наследников динамически, (допустим по индексу в том же массиве)?

Спасибо.
Re: Help. C# Приведение к анонимному типу
От: nerozero  
Дата: 07.09.08 05:51
Оценка:
Здравствуйте, 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);
}
Re[2]: Help. C# Приведение к анонимному типу
От: Haccel  
Дата: 07.09.08 06:32
Оценка:
Здравствуйте, 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>



Пока ждал ответа, до первого варианта сам допетрил.

Спасибо.
Мой поклон до земли...
Re: Help. C# Приведение к анонимному типу
От: Ovl Россия  
Дата: 07.09.08 11:10
Оценка:
H>Или допустим так, я создаю экземпляр родительского класса
H>
H>A aa=new A();
H>

H>Как мне его привести к одному из классов наследников динамически, (допустим по индексу в том же массиве)?

невозможно. любой слон может стать млекопитающим, но не любое млекопитающее может стать слоном.
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.