default() 可以获得某个类型的默认值 比如default(string)
那么如果我得到了这个一个参数的Type可不可以获得他的默认值
有没有系统的方法, 自己写一个泛型+反射我知道是可以的,但是效率不高,有系统方法就最好了
比如
public object GetDefault(Type t)
{
return .......//这里怎么写
}
C# default关键字
答案:6 悬赏:60 手机版
解决时间 2021-03-24 19:36
- 提问者网友:暗中人
- 2021-03-24 01:26
最佳答案
- 五星知识达人网友:英雄的欲望
- 2020-02-05 00:04
首先获取是否为知类型,如果是值类型返回CreateInstance() 否则返回NULL
全部回答
- 1楼网友:有你哪都是故乡
- 2019-09-08 06:26
dksajd可以这样写
- 2楼网友:青灯有味
- 2020-12-18 12:01
public object GetDefault(Object obj)
{
return obj.GetType().toString();//这样写行吗?
}
- 3楼网友:一袍清酒付
- 2020-02-06 08:09
default(t)是指把调用t类型的默认构造函数对其进行初始化,
如,int a=default(int);则a=0;如果t类型是引用类型的话,则初始化为null
你程序中出现的问题是,
泛型中的t仅仅是个占位符,在程序jit编译的时候,根据你传入的实参类型进行填充
所以,假如你在调用的时候,t的类型是个值类型的话,像你这样直接赋值null显然就会出错
可以给泛型假如约束保证其正常运行
class stacknode where t:class
{
//...
}
这样你再试下,应该就没问题了
- 4楼网友:蕴藏春秋
- 2019-06-15 07:36
T类型的默认值
如果T是int,则default(T)就是0
如果T是引用类型,则default(T)就是null
- 5楼网友:山君与见山
- 2021-03-17 04:42
这样写才对
pulic class Class
{
public static T GetDefault()
{
return default(T);
}
}
要不要static随便,调用的时候要用类似如下的方式
int i = Class.GetDefault();
int i = new Class().GetDefault();
//类型可以随便。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯