object[] array = new string[3];
但是当我尝试编译下面的代码时,我遇到了错误
class Dummy<K,T> where T:K{ public voID foo() { K[] arr = new T[4]; }}
它说“不能隐式地将类型’T []’转换为’K []’”
为什么我收到这个错误???
解决方法 您必须指定T和K都是引用类型.数组协方差仅适用于引用类型.将声明更改为:class Dummy<K,T> where T : class,K
它工作正常.您不必指定K是引用类型,因为如果T是引用类型并且它派生自或实现K,那么K也必须是引用类型. (至少我认为这是推理.为了清晰起见,添加K:class也没有什么坏处.)
总结以上是内存溢出为你收集整理的C# – 通用类中的阵列协方差全部内容,希望文章能够帮你解决C# – 通用类中的阵列协方差所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)