У меня есть 2 класса, которые имеют другое ограничение, и я хочу создать для них obj условно в обобщенной функции c. Пример ниже.
public class Foo1<T>
where T : class, Interface1, new()
{
// do sth...
}
public class Foo2<T>
where T : class, Interface2, new()
{
//do sth...
}
public static void Create<T>()
{
if(typeof(Interface1).IsAssignableFrom(typeof(T))
{
var obj = new Foo1();
//...
} else if (typeof(Interface2).IsAssignableFrom(typeof(T))
{
var obj = new Foo1();
//...
}
}
И я получил ошибку "Нет неявного преобразования ссылок из T в Interface1 / 2". Проблема похожа на Similiar на Как условно вызвать метод generi c с ограничениями? , но я могу найти место для добавления (Dynami c).