ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# 6.0, 7.0, 8.0, 9.0 总结

2021-06-08 08:34:41  阅读:288  来源: 互联网

标签:8.0 string c# 6.0 value 7.0 csharp catch new


参考 : 

https://www.c-sharpcorner.com/UploadFile/8ef97c/full-C-Sharp-6-0-in-single-article-on-visual-studio-2015-preview/

https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-7

https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8

https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9

 

c# 这几年改了好几个版本, 多了许多有用的语法糖,还带有 js ts 的味道了. 

我觉得随着 blazor 的发展 (想取代前端开发 ?) 那 c# 必然需要更多类似 ts 的语法. 

这里我会把一些类似的特性写在一起. 它本来是分几个版本出的,但是功能差不多只是提升了. 

 

1. using static (6.0)

一般上 using 都是配上一个 namespace, 然后下面调用是写 ClassName.StaticMethod();

有了 using static, 我们可以直接写 using static Namespace.ClassName 然后直接在下面调用 StaticMethod() 省去了每次写 ClassName.

感觉没有什么鸟用啦.

 

2. init property value (6.0)

public int age { get; set; } = 5;

我都不记得原来以前 init value 只能写在 construtor 里头了呢. 

这个太有用了. 

 

3. Dictionary 字典 int value (6.0)

var before = new Dictionary<string, string>
{
    { "key1", "value1" },
    { "key2", "value2" },
};
var after = new Dictionary<string, string>
{
    ["key1"] = "value1",
    ["key2"] = "value2"
};

新的写法更像 key-value pair 了. 

好用

 

4. nameof (6.0)

var stringValue = nameof(IndexModel.OnGet); // "OnGet"

却带了原本直接写 string "OnGet", 直接写就大的问题就是你不可以批量换. 

must use

 

5. catch when (6.0)

try
{

}
catch (Exception ex) when (ex.Message.Length > 10)
{
    throw;
}
catch (Exception ex) when (ex.Message.Length > 3)
{
    throw;
}

以前 catch 只能依据类型进入到不同的 catch, 现在可以多加一些表达式. 好处自然是易读性提高了咯. 

好用

 

6. Null-Conditional Operator (6.0)

就是 Object?.Property, or Object?.Method() 当 object 是 null 的时候直接返回 null, c# 的比 typescript 更好哦, typescript 都不可以调用方法呢.

must use.

 

7. expression method (6.0)

public string getValue(string value) => "dada" + value;

以前一定要写 return, 类似这种 () { return ".."; }. 它也不是绝对的好啦, 有时候写 return 直观哦. 

不错啦

 

8.String interpolation (6.0)

var x = $"{language}-some value";

${} 和 js 超不多, 这个太重要了. 以前的 string.format 简直恶心啊.

must use 

 

标签:8.0,string,c#,6.0,value,7.0,csharp,catch,new
来源: https://www.cnblogs.com/keatkeat/p/14861240.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有