永发信息网

C# default关键字

答案:6  悬赏:60  手机版
解决时间 2021-03-24 19:36
  • 提问者网友:暗中人
  • 2021-03-24 01:26
default() 可以获得某个类型的默认值 比如default(string)
那么如果我得到了这个一个参数的Type可不可以获得他的默认值
有没有系统的方法, 自己写一个泛型+反射我知道是可以的,但是效率不高,有系统方法就最好了

比如
public object GetDefault(Type t)
{
return .......//这里怎么写
}
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 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(); //类型可以随便。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯