谭晶伦敦,武术刀法,玩具总动员2国语
default 关键字有两类用法
int caseswitch = 1; switch (caseswitch) { case 1: console.writeline("case 1"); break; case 2: console.writeline("case 2"); break; default: console.writeline("default case"); break; }
default对应各种类型生成默认值列表如下:
|类型|默认值|
|-|-|
|任何引用类型|null
|
|数值类型|零|
|bool|false
|
|enum|表达式 (e)0
生成的值,其中 e
是枚举标识符。|
|struct|通过如下设置生成的值:将所有值类型的字段设置为其默认值,将所有引用类型的字段设置为null
。|
|可以为 null 的类型|hasvalue 属性为 false
且 value 属性未定义的实例。|
罗列一下上述列表中的常见类型对应的值
在c# 7.1 之前
default(string) // null default(int) // 0 default(int?) // null default(dynamic) // null default(datetime) // 0001/01/01 0:00:00 default(datetime?) // null
c# 7.1 default的使用常见举例
visual studio 2017 默认c#语言版本是7.0,需要自己设置7.1
alt+enter快捷键打开项目属性,或者右键点击项目,选择属性,之后选择生成,点击高级,如下图
打开高级生成设置,选择语言版本,选c# 7.1 及以上的版本,如下图
如果没有c# 7.1 及以上的版本可选,请下载.net framework 4.7.2,现在最新版本的是4.7.2,直接下载最新版本的,省事。然后重启vs,就能看到7.1及以上的可选项。
7.1之前:
var dstring = default(string); var dint = default(int); var dintnull = default(int?); var d = default(dynamic); var dt = default(datetime); var dt1 = default(datetime?);
7.1:
string s = default; int i = default; datetime? dt = default; dynamic d = default;
7.1之前:
var s = "字符串"; s = default(string);
7.1:
var s = "字符串"; s = default;
7.1之前:
void test(int a, string b = null) { }
7.1:
void test(int a, string b = default) { }
7.1之前:
static void test(int a, string b) { } static void main(string[] args) { test(0, null); }
7.1:
static void test(int a, string b) { } static void main(string[] args) { test(default, default); }
7.1之前:
static string test() { return null; }
7.1:
static string test() { return default; }
7.1之前:
public string a => null;
7.1:
public string a => default;
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
网友评论