C# 关键字default(默认值表达式)用法简介

第一种,用于switch语句中

switch (num)
{
    case 1:
        Console.WriteLine("1");
        break;
    case 2:
        Console.WriteLine("2");
        break;
    default:
        Console.WriteLine("no match");
    break;
}

 

作用是:不满足所有case的情况下,会进default, 若不写则直接跳出switch

 

重点是第二种,即各种类型的默认值

如下表:

类型

默认值

任何引用类型

null

数值类型

bool

false

enum

表达式 (E)0 生成的值,其中 E 是枚举标识符。

struct

通过如下设置生成的值:将所有值类型的字段设置为其默认值,将所有引用类型的字段设置为null

可以为 null 的类型

HasValue 属性为 false 且 Value 属性未定义的实例。

 

 

1.主要是用于泛型中

public T GetData<T>()
{
    return default;
}

 

2.default 在C#7.1中得到了改进,不再需要default(T)了:

 

变量赋值

C#7.0
var s = "字符串"; 
s = default(string); 


C#7.1
var s = "字符串"; 
s = default;

 

初始化赋值

C#7.0
var dstring = default(string); 
var dint = default(int); 
var dintNull = default(int?); 
var d = default(dynamic); 
var dt = default(DateTime); 
var dt1 = default(DateTime?);


C#7.1
string s = default; 
int i = default; 
DateTime? dt = default; 
dynamic d = default;

 

 

可选参数

C#7.0
void Test(int a, string b = default(string)) 
{
}


C#7.1
void Test(int a, string b = default) 
{
}

 

在VS中选择了C#7.1版本后 ,会提示优化代码,如下图:

  • 16
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值