首先,你可以关注下C# 4里引入的协变逆变,这样可能引入一个IBase<T>就可以干活。
其次,Handle<T>(Base<T>[] itemList) 也是一个常见的签名。
Base<string>和Base<int>可以认为是两个毫不相干的类型。
如果一定要产生联系,需要加入一个公共基类像这样:
Base<T> : Base
那么这时候,Base<string>和Base<int>就有了共同的基类Base了。
当然,C# 4加入了泛型接口的协变和逆变,不过这和你的泛型类型没啥关系。