C# defult关键字

一、问题

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

1
2
3
4
5
6
7
8
9
10
11
12
13
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之前:

1
string s = null;

7.1:

1
string s = defult;

  

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

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

 

posted @   翻白眼的哈士奇  阅读(526)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示