Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使用别名类型作为泛型类型参数#_C#_Generics_Alias_Using Directives - Fatal编程技术网

C# 如何在C中使用别名类型作为泛型类型参数#

C# 如何在C中使用别名类型作为泛型类型参数#,c#,generics,alias,using-directives,C#,Generics,Alias,Using Directives,如何将使用定义的别名类型传递给泛型类 我尝试了以下代码: using ID = Int32; // it might be replaced with `String`. using CC = C<ID>; public class C<T> { T id; } 使用ID=Int32;//它可以替换为“String”。 使用CC=C; 公共C类{ T-id; } 将出现一个错误: 错误CS0246找不到类型或命名空间名称“ID”(是 是否缺少using指令或

如何将使用
定义的别名类型传递给泛型类

我尝试了以下代码:

using ID = Int32; // it might be replaced with `String`.
using CC = C<ID>;

public class C<T> {
    T id;
}
使用ID=Int32;//它可以替换为“String”。
使用CC=C;
公共C类{
T-id;
}
将出现一个错误:

错误CS0246找不到类型或命名空间名称“ID”(是 是否缺少using指令或程序集引用?)

但是using指令就在发生错误的行的正上方。
我错过了什么吗?

我真的不知道你想用它实现什么,但是你可以用继承做类似的事情

public class CC : C<ID>
{
}
公共类CC:C
{
}
CC
将派生自具有具体类型的
C
。因此,
CC.T
将属于
Int32
(或任何类型)。

不要使用别名

public class C<T> {
   T id;
}
公共C类{
T-id;
}

void Foo(){
var x=新的C();
var y=新的C();
}

您想实现什么?目前似乎不可能做到这一点,请在链接副本引用规范时查看第一条注释,有一种方法可以绕过它,在外部命名空间中声明
ID
,在内部命名空间中声明
CC
。这里的问题是它们在同一个名称空间中。
void Foo() {
  var x = new C<Int32>();

  var y = new C<string>();
}