void function(Type type)
{
比如type是一个int型的
如何new一个int[]???
}
c# 已知Type类型的type 怎么在不是用泛型的情况下new一个type类型的数组
答案:2 悬赏:80 手机版
解决时间 2021-01-23 13:13
- 提问者网友:骨子里的高雅
- 2021-01-23 08:01
最佳答案
- 五星知识达人网友:孤老序
- 2021-01-23 08:14
static void Main(string[] args){
foo(typeof(int));
}
static void foo(Type type){
if (type == typeof(int)){
int[] @int = new int[10];
}
}
foo(typeof(int));
}
static void foo(Type type){
if (type == typeof(int)){
int[] @int = new int[10];
}
}
全部回答
- 1楼网友:罪歌
- 2021-01-23 09:18
要t是继承于a where t: a 要t继承于b的 where t: b 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束: 约束 说明 t:结构 类型参数必须是值类型。可以指定除 nullable 以外的任何值类型。有关更多信息,请参见使用可以为 null 的类型(c# 编程指南)。 t:类 类型参数必须是引用类型;这一点也适用于任何类、接口、委托或数组类型。 t:new() 类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new() 约束必须最后指定。 t:<基类名> 类型参数必须是指定的基类或派生自指定的基类。 t:<接口名称> 类型参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型的。 t:u 为 t 提供的类型参数必须是为 u 提供的参数或派生自为 u 提供的参数。这称为裸类型约束。 //--------------------------------- 补充,由于泛型约束表达式全部是“and”关系,所以不可能表示出“或”关系来,而且c#不支持多重继承,所以楼主的,这种或继承自a,或继承自b的需求,是无法实现的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯