C#6新特性,让你的代码更干净
2021-01-20 22:13
标签:set cti 拼接 add -o div 代码 die comm public class Post public class Comment } 这个我倒是没发现有多么精简 经常拼接字符串的对这个方法肯定不模式了,要么是string.Format,要么就是StringBuilder了。这也是我最新喜欢的一个新特性了。 空判断我们也经常,C#6新特性也让新特性的代码更见简便 空集合判断,这种场景我们在工作当中实在见的太多,从数据库中取出来的集合,空判断、空集合判断都会遇到。 这个我倒没觉得是新特性,官方给出的解释是当我们要创建一个只读自动属性时我们会这样定义如下 英语是Expression Bodied Members。其实我觉的也就是Lambda的延伸,也算不上新特性。 C#6新特性,让你的代码更干净 标签:set cti 拼接 add -o div 代码 die comm 原文地址:https://www.cnblogs.com/sexintercourse/p/12118459.html1、集合初始化器
//老语法,一个类想要初始化几个私有属性,那就得在构造函数上下功夫。
public class Post
{
public DateTime DateCreated { get; private set; }
public List
//用新特性,我们可以这样初始化私有属性,而不用再创建构造函数
{
public DateTime DateCreated { get; private set; } = DateTime.Now;
public List
}
{2、字典初始化器
var dictionary = new Dictionary
3、string.Format
Post post = new Post();
post.Title = "Title";
post.Content = "Content";
//通常情况下我们都这么写
string t1= string.Format("{0}_{1}", post.Title, post.Content);
//C#6里我们可以这么写,后台引入了$,而且支持智能提示。
string t2 = $"{post.Title}_{post.Content}";
4、空判断
//老的语法,简单却繁琐。我就觉得很繁琐
Post post = null;
string title = "";
if (post != null)
{
title = post.Title;
}
//C#6新特性一句代码搞定空判断
title = post?.Title;
Post post = null;
List
5、getter-only 初始化器
public class Post
{
public int Votes{get;private set;}
}
//新特性用这种方式
public class Post
{
public int Votes{get;}
}
6、方法体表达式化
public class Post
{
public int AddOld()
{
return 1 + 1;
}
//新特性还是用Lambda的语法而已
public int AddNew() => 1+1;
}