У меня есть класс B , который имеет метод GetSomeB , который возвращает новый экземпляр своего класса:
public class B
{
public B() { }
public B GetSomeB ()
{
return new B();
}
}
У меня есть класс A, который работает с дженериками. Дженерики должны быть объектом B или чего-то унаследованного от B. Однако мне нужно, чтобы типы атрибутов X и Y в A были специфическим типом подкласса c, а не только типом B, поэтому я использовал дженерики T1 и T2 :
class A<T1, T2>
where T1 : B
where T2 : B
{
public T1 X;
public T2 Y;
public A(T1 X, T2 Y)
{
this.X = X;
this.Y = Y;
}
public A<T1, T2> GetSomeA()
{
return new A<T1, T2>(this.X.GetSomeB(), this.Y.GetSomeB());
}
}
Я получаю ошибки времени компиляции: Невозможно преобразовать из B в T1 и Невозможно преобразовать из B в T2 из строки в GetSomeA метод в классе A Как я могу обойти это?