作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我遇到了以下代码,它们都在一个文件/类中。我省略了细节,它是我感兴趣的构造。为什么同一个类有两个不同的声明,它们有何不同?第二个声明的语法目的是什么?
public abstract class MyClass
{
...
}
public abstract class MyClass<TMyClass> : MyClass
where TMyClass: MyClass<TMyClass>
{
...
}
最佳答案
MyClass
- 一个名为 MyClass 的抽象类。
MyClass<TMyClass> : MyClass
- 一个名为 MyClass<>
的抽象泛型类但是有一个名为 TMyClass
的通用类型.
如果重命名类型,将更容易看到:
public abstract class MyBaseClass
{
...
}
public abstract class MyClass<T> : MyBaseClass
where T: MyClass<T>
{
...
}
关于c# - 这个 C# 构造在做什么,为什么? MyClass<TMyClass> : MyClass where,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19298489/
我想知道从类引用创建的对象是否是特定类或其任何后代的实例。 换句话说,我想要一个 bool 表达式,例如 var is TMyClass 但是其中 var 被替换为涉及类引用变量的表达式。这听起来很容
为什么我不能将类分配给其基本接口(interface)类型的变量。 考虑我们有以下内容: IInt1 = interface procedure Test1; end; IInt2 = inter
我遇到了以下代码,它们都在一个文件/类中。我省略了细节,它是我感兴趣的构造。为什么同一个类有两个不同的声明,它们有何不同?第二个声明的语法目的是什么? public abstract class My
之前,为了保存一些应用程序的设置,我使用: 容器的 TSettings = class(TPersistent) 要在已发布属性中序列化的每个数据 对象列表是TCollection和TCollecti
我是一名优秀的程序员,十分优秀!