C#6.0 [操作系统入门]

编程

C#6.0

  • 导入静态类
  • 异常过滤器
  • 自动属性初始化
  • Null条件运算符
  • 字符串内插
  • nameof表达式
  • Expression-bodied函数成员

导入静态类

我们可以使用using static 命名空间.静态类来导入要使用的静态类,后续使用时就可以像本地类一样的使用了,例如:

//导入Math静态类

using static System.Math;

//使用时就不需要再指定命名空间了,可以直接类名.静态方法()来使用

int n = (int)Math.Ceiling(0.01m);

异常过滤器

异常过滤器可以让你在catch块执行之前先进行一个条件判断。

try

{

using (HttpClient client = new HttpClient())

{

var response = await client.GetStringAsync("https://i.cnblogs.com/tags");

Console.WriteLine(response);

}

}

catch (System.Net.Http.HttpRequestException ex) when (ex.Message.Contains("401"))

{

Console.WriteLine(ex.Message);

}

自动属性初始化

C#6.0之前是没办法给自动属性进行初始化,只能在对象创建成功后手动赋值。现在可以直接在自动属性后面加上初始值或初始化表达式。

private static int _defaultGender = 1;

//使用字面量设置初始值

public string Name { get; set; } = "张三";

//使用初始化表达式设置初始值

public string Gender { get; set; } = _defaultGender == 1 ? "男" : "女";

Null条件运算符

Null条件运算符使null检查更轻松、更流畅。将成员访问.替换为?.

Null合并运算符使结果为null时可以设置默认值。使用??

//如果person是null,则将变量name赋值为null,否则将Name的属性值赋值给该变量。

string name=person?.Name;

//如果姓名为null时则默认姓名为张三

string name = person?.Name ?? "张三";

字符串内插

字符串内插功能可以在字符串中嵌入表达式。使用$作为字符串的开头,并使用{}之间的表达式来计算结果。

string name = "张三";

string summary = $"hi,大家好,我叫:{name}..";

字符串内插就是语法糖,内部实际上是使用了string.Format方法。

nameof表达式

nameof表达式可生成变量、类型或成员的名称作为字符串常量。

nameof表达式在编译时进行求值,在运行时无效。

string name = "张三";

string summary = $"{nameof(name)}={name}";

//output:name=张三

Expression-bodied函数成员

之前只读属性和方法都是放在一个语句块中的,现在可以改成Expression-bodied成员。

//只读属性

public string Name => "张三";

//方法

public void Hello() => Console.WriteLine("hello world");

C#6.0

以上是 C#6.0 [操作系统入门] 的全部内容, 来源链接: utcz.com/z/518478.html

回到顶部