Где ошибка в моем журнале c?
У вас есть метод, который является общим c для любых T
и TT
(с некоторыми ограничениями) но вы возвращаете реализацию с указанием c. Если вы вызываете K
с любыми типами, кроме RA
и RB
, тип возврата будет несовместим.
Какая подпись должна GetR()
иметь возможность возвращаться как K<A, B<A>>
все, что реализует K
?
Ваша подпись делает это - это определенное c возвращаемое значение , вызывающее ошибку. Вы можете сделать:
public K<T, TT> GetR<T, TT>() where T : A where TT : B <T> {
return rk as K<T, TT>;
}
, который вернет null
, если T
и TT
были чем-то другим, кроме RA
и RB
.