有时候这样做是有用的:
class X { ... } class Y { X X { get { ... } set { ... } } }
因为X描述了类型是什么(作为类名称)和正在访问/变异的值(作为属性名称).到现在为止还挺好.假设你想做同样的事情,但是以通用的方式:
class Z<T> { T T { get { ... } set { ... } } }
对于这个例子,编译器抱怨说:类型’Z< T>已经包含’T’的定义.
这是属性,变量和方法发生的,我不太明白为什么 – 编译器肯定知道T是一个类型,因此可以按照与第一个例子相同的方式计算出来?
简短版本:为什么第一个例子工作,但不是第二个例子?
编辑:我刚刚发现,如果我从“T”到“U”这个类型参数“Refactor> Rename”,那么IDE会将其更改为:
class Z<U> { U T { get { ... } set { ... } } }
解决方法
原文地址:https://www.jb51.cc/csharp/93397.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。