У меня есть метод, который принимает параметр Generic. Я ограничил тип одним из двух. Внутри метода я хочу установить вызов одного из двух конструкторов.Установить Generic для нового экземпляра в C#
Код:
internal static void CreateAddress<T>(out T address, bool isSave, int? cID) where T: Address_Accessor, Address
{
DateTime dt= DateTime.Now;
int? eID = 1;
int? sID = 50;
if (typeof(T) == typeof(Address_Accessor))
address = new Address_Accessor(dt, eID , sID);
else
address = new Address(dt, eID, sID);
}
Провал компиляции говорит:
Не может неявно преобразовать тип 'Address_Accessor' до 'Т'. Явное преобразование существует (вы пропали без вести броска?)
дженерик кажутся как довольно страшным припадок здесь. Похоже, что перегруженный метод будет очень хорош. –
Какова связь между Address_Accessor и адресом? –
Это не правильно, generics позволяют работать с определенными типами, а не просто динамически смешивать и сопоставлять типы. –