标签:
C# 6.0 的知识梳理 序目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段。C# 6.0 虽说出了一段时间,但是似乎有许多园友对这一块知识并不了解,如拼接字符串的 $ 符号,在此,小人献上拙作一篇《C# 6.0 的知识梳理》,祝大家在新的一年里:年年有今日,岁岁有今朝,月月涨工资,周周中彩票,天天好心情,日日好运道,白天遇财神,,夜晚数钞票。
好了,废话不多说,我们先来回顾一下 C# 的版本史。后续我会对带 0 的版本号进行的简写:C# 6.0 -> C# 6。由于新的特性较多,笔者就每种特性只截取其中一部分(一段核心代码)作为示例。
C# 与 VS 的前世今生 nameof用于获取变量、类型或成员的简单(非限定)字符串名称。可以在错误消息中使用类型或成员的非限定字符串名称,而无需对字符串进行硬编码,这样也方便重构。
用法:这里用来验证字符串的参数是否为空:
private void Func(string msg) { if (string.IsNullOrEmpty(msg)) { throw new ArgumentException(nameof(msg)); } }
简单示例:
1 using System; 2 using SystemTest = System.Text; 3 4 namespace _01_nameof 5 { 6 class Program 7 { 8 private static void Func1(int x) { } 9 private string F<T>() => nameof(T); 10 private void Func2(string msg) { } 11 12 static void Main(string[] args) 13 { 14 var program = new Program(); 15 16 Console.WriteLine(nameof(SystemTest)); 17 Console.WriteLine(nameof(Func1)); 18 Console.WriteLine(nameof(Program)); 19 Console.WriteLine(nameof(program)); 20 Console.WriteLine(nameof(F)); 21 22 Console.Read(); 23 } 24 } 25 }
【备注】如果需要获取完全限定名,我们可以通过 typeof 表达式和 nameof 结合使用。
整理中...
【博主】反骨仔