服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#6.0新语法示例详解

C#6.0新语法示例详解

2022-10-25 12:57变脸超人 C#

这篇文章主要给大家介绍了关于C#6.0新语法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

一直用C#开发程序,.NET的功能越来越多,变化也挺大的,从最初的封闭,到现在的开源,功能不断的增加,一直在进步。下面就来给大家详细介绍下C#6.0新语法的相关内容,一起来看看吧

众所周知,c# 6.0 是在visual studio 2015中引入的。在其他的几个版本中同样引入一些特性,比如在c# 3.0中引入了linq,在c# 4.0中引入了动态类型dynamic,在c#5.0中引入async和await等等。

在c# 6.0更多关注了语法的改进,而不是增加新的功能。这些新的语法将有助于我们更好更方便的编写代码。

1、自动只读属性

之前属性为如下所示,属性赋值需在构造函数对其初始化

?
1
2
1 public int Id { get; set; }
2 public string Name { get; set; }

 更新后

?
1
2
3
4
5
6
7
8
public string Name { get; set; } = "summit";
public int Age { get; set; } = 22;
public DateTime BirthDay { get; set; } = DateTime.Now.AddYears(-20);
public IList<int> AgeList
{
  get;
  set;
} = new List<int> { 10, 20, 30, 40, 50 };

2、直接引用静态类

如果之前调用静态类中的方法,如下书写:

?
1
Math.Abs(20d);

更新后:

?
1
2
3
4
5
6
using static System.Math;
 
private void Form1_Load(object sender, EventArgs e)
  {
   Abs(20d);
  }

3、Null 条件运算符

之前在使用对象时,需要先进性判断是否为null

?
1
2
3
4
5
6
7
8
if (student!=null)
{
 string fullName = student.FullName;
}
else
{
 //……
}

更新后:

?
1
string fullName = student?.FullName; //如果student为空则返回Null,不为空则返回.FullNaem,注意!得到的结果一定是要支持null

4、字符串内插

?
1
string str = $"{firstName}和{lastName}"

5、异常筛选器

?
1
2
3
4
5
6
7
try
{
 
}
catch(Exception e) when(e.Message.Contains("异常过滤,把符合条件的异常捕获")
{
}

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

?
1
2
Console.WriteLine(nameof(System.Collections.Generic)); // output: Generic
Console.WriteLine(nameof(List<int>)); // output: List

7、使用索引器初始化对字典进行赋值

?
1
2
3
4
5
6
Dictionary<int, string> messages = new Dictionary<int, string>
    {
     { 404, "Page not Found"},
     { 302, "Page moved, but left a forwarding address."},
     { 500, "The web server can't come out to play today."}
    };

同时也可以这样通过索引的方式进行赋值

?
1
2
3
4
5
6
Dictionary<int, string> webErrors = new Dictionary<int, string>
    {
     [404] = "Page not Found",
     [302] = "Page moved, but left a forwarding address.",
     [500] = "The web server can't come out to play today."
    };

8、在属性/方法里面使用Lambda表达式

?
1
2
public string NameFormat => string.Format("姓名: {0}", "summit");
public void Print() => Console.WriteLine(Name);

总结

到此这篇关于C#6.0新语法的文章就介绍到这了,更多相关C#6.0新语法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_44064908/article/details/111408797

延伸 · 阅读

精彩推荐
  • C#C# 基础入门--关键字

    C# 基础入门--关键字

    本文主要介绍了C# 基础知识--关键字的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧...

    辰星crystal12262021-12-27
  • C#C#中for循环、while循环循环执行的方法

    C#中for循环、while循环循环执行的方法

    这篇文章主要介绍了C#中for循环、while循环循环执行的方法的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧...

    C#教程网6152021-11-29
  • C#C#身份证号码验证是否正确

    C#身份证号码验证是否正确

    这一篇关于C#语言验证18位身份证号码的验证方法和实例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    C#教程网7002021-10-28
  • C#C#使用Jquery zTree实现树状结构显示 异步数据加载

    C#使用Jquery zTree实现树状结构显示 异步数据加载

    这篇文章主要为大家详细介绍了C#使用Jquery zTree实现树状结构显示和异步数据加载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    深入学习ing4812021-12-15
  • C#c#字符串编码问题的处理解决

    c#字符串编码问题的处理解决

    这篇文章主要介绍了c#字符串编码问题的处理解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下...

    森大科技6772022-08-16
  • C#C# Distinct和重写IEqualityComparer时要知道的二三事

    C# Distinct和重写IEqualityComparer时要知道的二三事

    这篇文章主要给大家介绍了关于C# Distinct和重写IEqualityComparer时要知道的二三事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考...

    新田三十三11202022-07-27
  • C#C# WPF使用AForge类库操作USB摄像头拍照并保存

    C# WPF使用AForge类库操作USB摄像头拍照并保存

    这篇文章主要为大家详细介绍了C# WPF使用AForge类库操作USB摄像头拍照并保存,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    晓风-杨柳3622022-03-01
  • C#C#实现餐饮管理系统完整版

    C#实现餐饮管理系统完整版

    这篇文章主要为大家详细介绍了C#实现餐饮管理系统的完整版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    战歌IT6452022-03-09