Вы должны проверить на построенный тип общего интерфейса.
Вам нужно будет сделать что-то вроде этого:
foo is IBar<String>
, потому что IBar<String>
представляет построенный тип , Причина, по которой вы должны это сделать, состоит в том, что если T
не определено в вашей проверке, компилятор не знает, имеете ли вы IBar<Int32>
или IBar<SomethingElse>
.