Aar*_*man 7 c# generics typedef
我正在使用类的速记版本,如下所示:
using NodeSteps = Tuple<Node, int>;
Run Code Online (Sandbox Code Playgroud)
Node是我自己定义的类.这通常很好,但问题是,Node是一个需要结构的泛型.
我的问题如下:
1.如何在C#中调用这些typedef.我知道它们并不完全是typedef,但它是我能想到的最相似的东西.
2.我如何制作通用版本?
using NodeSteps<T> = Tuple<Node<T>, int>;
Run Code Online (Sandbox Code Playgroud)
我注意到这不是这样做的方法.我也想指定T是一个结构.
使用
class NodeSteps<T> : Tuple<Node<T>, int>
{
}
Run Code Online (Sandbox Code Playgroud)
这是我所知道的typedef最接近的等价物.如果有任何非默认构造函数,则需要声明它们.
它们被称为别名.
不,这是不可能的.C#语言规范:
使用别名可以命名一个封闭的构造类型,但不能在不提供类型参数的情况下命名未绑定的泛型类型声明.
因此,using x<T> = List<T>或类似的东西是不可能的.
您可以使用课程(请参阅其他答案).
这将在C#语言规范的第9.4.1节中介绍.
使用别名可以命名一个封闭的构造类型,但不能在不提供类型参数的情况下命名未绑定的泛型类型声明.
这称为别名,不能是通用的,但使用的右手可以是通用的
using ListOfInts = List<int>
Run Code Online (Sandbox Code Playgroud)
已验证
| 归档时间: |
|
| 查看次数: |
7824 次 |
| 最近记录: |