首页 > 编程语言 >C#新语法

C#新语法

时间:2023-09-18 13:33:08浏览次数:31  
标签:namedLetters Console C# 语法 int Beta WriteLine Alpha

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

相关文章

  • 无涯教程-JavaScript - LOG函数
    描述LOG函数将数字的对数返回您指定的基数。语法LOG(number,[base])争论Argument描述Required/OptionalNumberThepositiverealnumberforwhichyouwantthelogarithm.RequiredBaseThebaseofthelogarithm.Ifbaseisomitted,itisassumedtobe10.......
  • vue2和vue3使用echarts时无数据,怎么显示暂无数据图片或文字
    一开始也经历了用v-if和v-show,v-show的话echarts还会留出暂无数据图片的位置,导致echarts变形,v-if在加载和不加载切换时,dom会获取不到;后来也是在网上找的方法,时间有点长,原文地址就不贴了。对了,在网上查方法的时候还找到了echarts noDataLoading这个方法,按照网上的写完,但是并没有......
  • 9.4classtest rewrite(仓库管理系统)
    第一部分,设计界面以及类的定义.importjava.util.Scanner;publicclassviovo{staticintnumber=5;//五个商品信息staticoppo[]s=newoppo[50];publicstaticvoidmain(String[]args){Scannerab=newScanner(System.in);......
  • 如何与Vitesco Technologies建立 EDI 连接?
    VitescoTechnologies(维德科技)是一家专注于汽车动力总成和电动驱动解决方案的公司。它是大陆集团(ContinentalAG)的一部分,总部位于德国。VitescoTechnologies在传统内燃机技术和电动驱动技术领域都有着广泛的经验和专业知识。VitescoTechnologiesEDI需求分析EDI能够将基于......
  • 关于SAP中的ICON
    1. se38执行showicon可以查看所有的图标,可以查看每一个图标的样式、名称、说明、内码。其中内码为开发中使用的。2.函数组ICON中包括图标相关的函数。在开发中可用于图标的处理。3.屏幕中可以直接为按钮等按照名字选用图标,则按钮中会带有图标;也可以定义一个状态图标(icon_d......
  • 用ME_CONFIRMATION_UPDATE处理采购订单行项目确认视图
    用function module:ME_CONFIRMATION_UPDATE,可以处理采购订单行项目确认视图,实现增删改操作。 CALLFUNCTION'ME_CONFIRMATION_UPDATE'EXPORTINGI_EBELN="采购订单号TABLESXEKES="对应新增和修改YEKES=......
  • 用CSAI_BOM_CREATE创建WBS元素BOM
    REPORTZTEST2.datawa_csintypeCSIN.datawa_stpoblikeSTPOB.datawa_stzublikeSTZUB.datatab_STPOBtypetableofSTPOB.datawa_STKOBlikeSTKOB.datag_warn_stlnrtypeSTZUB-STLNR.datag_flwarningtypeCAPIFLAG-FLWARNING.cLEARwa_csin......
  • 用CSAI_BOM_DELETE删除WBS元素BOM
    REPORTZTEST4.datawa_csintypeCSIN.datag_warn_stlnrtypeSTZUB-STLNR.datag_flwarningtypeCAPIFLAG-FLWARNING.cLEARwa_csin.*wa_csin-aennr='009900159470'.wa_csin-MATNR='000000000000001223'."wa_csin-datuv=sy-d......
  • 用CSAI_BOM_MAINTAIN修改WBS BOM
    注意在修改之前要先用'CSAI_BOM_READ读取该BOM的数据 。可实现对BOM行项目做增删改的操作,而且可以带上更改号。REPORTZTEST5.datawa_csintypeCSIN.datatab_stpobtypetableofSTPOB.datatab_STKOBtypetableofSTKOB.datatab_DEP_DATAtypetableofCSDEP_DAT.......
  • 用CSAI_BOM_READ读取WBS元素BOM
    REPORTZTES3.datawa_csintypeCSIN.datatab_stpobtypetableofSTPOB.datatab_STKOBtypetableofSTKOB.datatab_DEP_DATAtypetableofCSDEP_DAT.datatab_DEP_DESCRtypetableofCSDEP_DESC.datatab_DEP_ORDERtypetableofCSDEP_ORD.datatab......