C# defult关键字

Posted yaosj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
数值类型
bool false
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

 

以上是关于C# defult关键字的主要内容,如果未能解决你的问题,请参考以下文章

C#中超级关键字的等价物

C#关键字:yield

C#第一章 第一个C#程序

c#中的_Default关键字是啥意思

c#关键字详解

C#的lock关键字到C++的转换