C#6.0新语法示例详解
作者:变脸超人 发布时间:2023-11-16 03:43:42
标签: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 public int Id { get; set; }
2 public string Name { get; set; }
更新后
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、直接引用静态类
如果之前调用静态类中的方法,如下书写:
Math.Abs(20d);
更新后:
using static System.Math;
private void Form1_Load(object sender, EventArgs e)
{
Abs(20d);
}
3、Null 条件运算符
之前在使用对象时,需要先进性判断是否为null
if (student!=null)
{
string fullName = student.FullName;
}
else
{
//……
}
更新后:
string fullName = student?.FullName; //如果student为空则返回Null,不为空则返回.FullNaem,注意!得到的结果一定是要支持null
4、字符串内插
string str = $"{firstName}和{lastName}"
5、异常筛选器
try
{
}
catch(Exception e) when(e.Message.Contains("异常过滤,把符合条件的异常捕获")
{
}
6、nameof 表达式可生成变量、类型或成员的名称作为字符串常量
Console.WriteLine(nameof(System.Collections.Generic)); // output: Generic
Console.WriteLine(nameof(List<int>)); // output: List
7、使用索引器初始化对字典进行赋值
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."}
};
同时也可以这样通过索引的方式进行赋值
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表达式
public string NameFormat => string.Format("姓名: {0}", "summit");
public void Print() => Console.WriteLine(Name);
来源:https://blog.csdn.net/weixin_44064908/article/details/111408797


猜你喜欢
- 为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数
- 本文实例讲述了C#微信公众号开发之接收事件推送与消息排重的方法。分享给大家供大家参考。具体分析如下:微信服务器在5秒内收不到响应会断掉连接,
- 本文实例讲述了WinForm判断关闭事件来源于用户点击右上角“关闭”按钮的方法。分享给大家供大家参考。具体如下:protected over
- 第一种(java8):遍历JSONArray 拼接字符串public static void main(String[] args) {JS
- 在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。由于这种限制不方便,所以出现了ArrayList。ArrayList、Lis
- 棋牌类游戏是目前比较火的游戏之一。今天本文就以实例形式实现洗牌游戏。本文实例所采用的算法是:遍历每个位置上的牌,然后与随机位置上的牌交换。运
- TTL简介TTL 是什么呢?TTL 是 RabbitMQ 中一个消息或者队列的属性,表明一条消息或者该队列中的所有消息的最大存活时间,单位是
- 一. 类型转型将一个类型转换成另一个类型的过程被称为类型转换。 我们所说的对象类型转换,一般是指两个存在继承关系的对象,而不是任意类型的对象
- activiti使用的时候,通常需要跟业务紧密的结合在一起,有些业务非常的复杂,比如一个简单的采购流程:流程如下: 供应商上新商品
- 暴露您view中所有影响可见外观的属性或者行为。•通过XML添加和设置样式•通过元素的属性来控制其外观和行为,支持和重要事件交流的事件 *
- 原网页:JavaGuideJVM在执行Java程序过程中会把它管理的内存划分成若干个不同的数据区域。JDK1.8和之前的版本略有不同,下面会
- 本文实例讲述了C#取得随机颜色的方法。分享给大家供大家参考。具体实现方法如下:public string GetRandomColor(){
- 前言最近在学习spring,抽空会将学习的知识总结下面,本文我们会接触spring 4的新功能:@Conditional注解。在之前的spr
- 前言本节我们将学习一下@PostConstruct的用法。概述@PostContruct是spring框架的注解,在方法上加该注解会在项目启
- 类和对象的关系类就是一类对象的统称。对象就是这一类具体化的一个实例。 (对象是类的实例化)对象是什么?此对象非彼对象!!!😂说到对象就要提到
- 本文实例为大家分享了Java控制台实现猜拳游戏的具体代码,供大家参考,具体内容如下1、目标通过控制台实现一个人机对战的猜拳游戏,用户通过输入
- android系统提供了Environment.getExternalStorageDirectory()接口获得存储器的路径,但是这个接口
- 前言Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,Ac
- 前段时间,有个同事说“30000000000000000000000000000000000000000000000000000000000
- 前言什么是AptAPT从原理上讲是一个编译期的注解处理工具(Annotation Processing Tool)。一些主流的三方库(But