C#7.0新特性

public class SharpSevenNewInfo
    {
        public static void Show() {

            //out变量声明
            {
                //不需要提前声明
                int.TryParse("111", out int result);
                Console.WriteLine(result);
                //可以声明var 类型
                int.TryParse("111", out var result1);
                Console.WriteLine(result1);
            }

            //元组
            {
                (string All, string Bota) name = ("11","22");
                name.All = "aaa";
                name.Bota = "bbb";
                Console.WriteLine($"{name.All}-{name.Bota}");

                var user1 = (ID: 1, Name: "22");
                user1.ID = 2;
                user1.Name = "222";
                Console.WriteLine($"{user1.ID}-{user1.Name}");

                //调用函数返回元组,调用一个函数返回多个返回值
                (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 var xx, out var yy);
                Console.WriteLine(xx);
                Console.WriteLine(yy);
            }

            //弃元,放弃一部分元素
            {
                //元组返回多个值,不需要的可以用_
                (_,var xx) = Range();
                Console.WriteLine(xx);
            }

            //模式
            {
                int input = 123;
                int sum = 234;
                //如果input等于int类型,把值赋给count,不需要声明
                if (input is int count)
                    sum += count;
            }
        }

        
        /// <summary>
        /// 返回元组,同时返回多个返回值
        /// </summary>
        /// <returns></returns>
        private static (int max, int min) Range() {
            return (123,123);
        }

        public class Point {
            /// <summary>
            /// 元组函数赋值
            /// </summary>
            /// <param name="x"></param>
            /// <param name="y"></param>
            public Point(double x, double y) => (X, Y) = (x, y);

            public double X { get; }

            public double Y { get; }
            /// <summary>
            /// 元组取值
            /// </summary>
            /// <param name="x"></param>
            /// <param name="y"></param>
            public void Deconstruct(out double x, out double y) =>
                (x, y) = (X, Y);
        }
    }

  

posted @ 2021-04-05 09:41  不骄不傲  阅读(44)  评论(0编辑  收藏  举报