C# defult关键字

一、问题

今天写一个函数提示用defult,因为第一次用记录一下

        public static T GetConfig<T>(string strConfig)
        {
            try
            {
                return JsonConvert.DeserializeObject<T>(strConfig);

            }
            catch (Exception ex)
            {
                return default(T);//表示null

            }
        }

  

return null;时提示:无法将null类型转换为T,因为T可能是不可为null的值类型,请考虑用defult(T);

改为return defult(T);后正常

二、延伸

default 关键字有两类用法

  1. switch语句中指定默认标签
  2. 默认值表达式
默认值表达式

default对应各种类型生成默认值列表如下:

类型默认值
任何引用类型null
数值类型
boolfalse
enum表达式 (E)0 生成的值,其中 E 是枚举标识符。
struct通过如下设置生成的值:将所有值类型的字段设置为其默认值,将所有引用类型的字段设置为null
可以为 null 的类型HasValue 属性为 false 且 Value 属性未定义的实例。

例:

default(string)null
default(int)0
default(int?)null

C#7.1可以直接使用defult关键字,不用带上类型;

例:

7.1之前:

string s = null;

7.1:

string s = defult;

  

如果想进一步了解,请参考:

https://www.cnblogs.com/AlienXu/p/9494676.html     作者:repeatedly

 

转载于:https://www.cnblogs.com/yaosj/p/11082589.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值