C#6语法
1.只读自动属性
2.using static
3.Null 条件运算符
3.字符串内插
4.异常筛选器
5.nameof 表达式
6.使用索引器初始化关联集合
C#7语法
1.out 变量
原:先声明,后使用
现:不需要声明
int.TryParse("456",out var result);
Console.WriteLine(result);
2.元组
class Program { static void Main(string[] args) { //int.TryParse("456", out var result); //Console.WriteLine(result); //元组 (string Alpha, string Beta) namedLetters = ( "a", "b" ); namedLetters.Alpha = "aa"; namedLetters.Beta = "bb"; Console.WriteLine($"{namedLetters.Alpha},{namedLetters.Beta}"); var alphabetStart = (Alpha: "a", Beta: "b"); alphabetStart.Beta = "B+B"; alphabetStart.Alpha = "A+A"; Console.WriteLine($"{alphabetStart.Alpha},{alphabetStart.Beta}"); (int max, int min) = Range(); Console.WriteLine(max); Console.WriteLine(min); { var p = new Point(12, 13); Console.WriteLine(p.X); Console.WriteLine(p.Y); p.Deconstruct(out double xx, out double yy); Console.WriteLine(xx); Console.WriteLine(yy); } } private static (int max,int min)Range() { return (123, 234); } } public class Point { public Point(double x, double y) => (X, Y) = (x, y); public double X { get; } public double Y { get; } public void Deconstruct(out double x, out double y) => (x, y) = (X, Y); }
3.弃元 用不到的参数不进行返回值
4.模式匹配
class Program { static void Main(string[] args) { //int.TryParse("456", out var result); //Console.WriteLine(result); #region 元组 //元组 //(string Alpha, string Beta) namedLetters = ("a", "b"); //namedLetters.Alpha = "aa"; //namedLetters.Beta = "bb"; //Console.WriteLine($"{namedLetters.Alpha},{namedLetters.Beta}"); //var alphabetStart = (Alpha: "a", Beta: "b"); //alphabetStart.Beta = "B+B"; //alphabetStart.Alpha = "A+A"; //Console.WriteLine($"{alphabetStart.Alpha},{alphabetStart.Beta}"); //(int max, int min) = Range(); //Console.WriteLine(max); //Console.WriteLine(min); //{ // var p = new Point(12, 13); // Console.WriteLine(p.X); // Console.WriteLine(p.Y); // p.Deconstruct(out double xx, out double yy); // Console.WriteLine(xx); // Console.WriteLine(yy); //} #endregion #region 模式 { int input = 123; int sum = 234; if(input is int count)//input 是int类型变量,则将input值赋值给count { sum += count; } } { IEnumerable<object> enumerablelist = new List<object>() { 0, new List<int>(){0,1,2,3,4,5,6}, 100, null }; int iResult = SumPositiveNumbers(enumerablelist); } #endregion } public static int SumPositiveNumbers(IEnumerable<object> sequence) { int sum = 0; foreach(var i in sequence) { switch(i) { case 0: break; case IEnumerable<int> childSequence: { foreach (var item in childSequence) sum += (item > 0) ? item : 0; break; } case int n when n > 0: sum += n; break; case null: throw new NullReferenceException("NUll found in sequence"); default: throw new InvalidOperationException("Unrecognizes type"); } } return sum; }
5.ref 局部变量和返回结果
6.本地函数
7.更多的 expression-bodied 成员
8.throw 表达式
9.通用的异步返回类型
10.数字文本语法改进
C#8语法
1.Readonly 成员 待处理
2.默认接口方法
3.模式匹配增强功能:
4.Using 声明
5.静态本地函数
6.可处置的 ref 结构
7.可为空引用类型
8.异步流
9.异步可释放
10.索引和范围
11.Null 合并赋值
12.非托管构造类型
13.嵌套表达式中的 14.Stackalloc
15.内插逐字字符串的增强功能
C#9语法
1.记录
2.仅限 Init 的资源库
3.顶级语句
4.模式匹配增强功能
5.本机大小的整数
6.函数指针
7.禁止发出 localsinit 标志 8.目标类型的新表达式
9.静态匿名函数
10.目标类型的条件表达式
11.协变返回类型
12.扩展 GetEnumerator 支持 foreach 循环
13.Lambda 弃元参数
14.本地函数的属性
15.模块初始值设定项
16.分部方法的新功能 标签:namedLetters,Console,C#,语法,int,Beta,WriteLine,Alpha From: https://www.cnblogs.com/Mandy-ZQ-Ma/p/17711655.html