zoukankan      html  css  js  c++  java
  • C#6.0和7.0的部分新特性介绍

    语言版本 发布时间 .NET Framework要求
    C# 1.0 2002.1 .NET Framework 1.0
    C# 1.11.2  2003.4 .NET Framework 1.1
    C# 2.0  2005.11 .NET Framework 2.0 
    C# 3.0 2007.11 .NET Framework 2.03.03.5
    C# 4.0 2010.4 .NET Framework 4.0
    C# 5.0 2012.8 .NET Framework 4.5
    C# 6.0 2015.7 .NET Framework 4.6
    C# 7.0 2017.3 .NET Framework 4.6.2
    C# 7.1 2017.6 .NET Framework 4.7
    C# 7.2 2017.11 .NET Framework 4.7.1
    C# 7.3 2018.5 .NET Framework 4.7.2
    C# 8.0 2019.4 .NET Framework 4.8
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    using System.Runtime.CompilerServices;
    using System.Diagnostics;
    using static System.Math;   //使用静态类,代码中可以直接调用方法  6.0
    using System.Text.RegularExpressions;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                User user2 = null;
                string uName = user2?.FirstName;  //null类型判断,为null返回null  6.0
                int? age = user2?.Age;
    
                string myName = $"FirstName is {Name}";  //对字符串格式化简单化  6.0
    
                string uOfName = nameof(user2);   //获取字段名称 6.0
    
                Dictionary<int, string> dict1 = new Dictionary<int, string>() { [2] = "re", [43] = "rt" };   //字典初始化 6.0
                Dictionary<int, string> dict2 = new Dictionary<int, string>() { { 2, "re" }, { 43, "re" } };  //4.0Ago
    
                get(out int a, out int b);   //针对out可以合并 6.0
                Console.WriteLine(a);
    
                object obj = "gg";
                if (obj is int iObj)   //模式匹配  7.0
                {
                    Console.WriteLine(iObj + 9);
                }
    
                var tuple = (a: 10, b: "123");   //元组(Tuples)
                Console.WriteLine($"a:{tuple.a},b:{tuple.b}");
    
                //解构元组 7.0
                var result1 = Get1();
                Console.WriteLine($"Item1:{result1.Item1},Item2:{result1.Item2},Item3:{result1.Item3}");
                var (str1, int1, dt1) = Get1();
    
                var result2 = Get2();
                Console.WriteLine($"Item1:{result2.a},Item2:{result2.b},Item3:{result2.c}");
                var (str2, int2, dt2) = Get2();
    
                int num = 123_456;   //允许在数字文字中_作为数字分隔符出现  7.0
    
                Console.ReadKey();
            }
    
            //解构元组
            static (string, int, DateTime) Get1()  //7.0
            {
                return ("abc", 123, DateTime.Now);
            }
    
            static (string a, int b, DateTime c) Get2()  //7.0
            {
                return (a: "abc", b: 123, c: DateTime.Now);
            }
    
            public static string Get(object a)
            {
                return GetP();
                string GetP()   //局部函数,方法中的方法  7.0
                {
                    if (a is int v) return v + "";
                    if (a is string b) return b;
                    return "ccc";
                }
            }
    
            public static void PrintStars(object o)
            {
                switch (o)   //加强版switch  7.0
                {
                    case Print p:
                        break;
                    case int a:
                        break;
                    case String b when b == "123":
                        break;
                }
            }
    
            public class Print
            {
                public string PrintName { get; set; }
                public string MoBanPath { get; set; }
                public int Count { get; set; }
            }
    
    
            public static int get(out int a, out int b)
            {
                a = 8; b = 9;
                return a + b;
            }
    
            public static string Name { get; set; } = "BB";    //直接对get属性赋初始值  6.0
    
            public static int Age { get; } = 100;
    
            public class User
            {
                public string FirstName { get; set; }
    
                public string LastName { get; set; }
    
                public override string ToString() => string.Format("{0}——{1}", FirstName, LastName);   //Lambda简写方法  6.0
    
                public void S() => string.Format("{0}——{1}", FirstName, LastName);
    
                public string FullName => FirstName + " " + LastName;
    
                public int Age { get; set; } = 35;
    
                public int ID
                {
                    get => 0;
                    set => Age = value;
                }
            }
    
    
        }
    }
    
  • 相关阅读:
    外校培训前三节课知识集合纲要(我才不会告诉你我前两节只是单纯的忘了)
    floyd算法----牛栏
    bfs开始--马的遍历
    (DP 线性DP 递推) leetcode 64. Minimum Path Sum
    (DP 线性DP 递推) leetcode 63. Unique Paths II
    (DP 线性DP 递推) leetcode 62. Unique Paths
    (DP 背包) leetcode 198. House Robber
    (贪心 复习) leetcode 1007. Minimum Domino Rotations For Equal Row
    (贪心) leetcode 452. Minimum Number of Arrows to Burst Balloons
    (字符串 栈) leetcode 921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/bridgew/p/12709062.html
Copyright © 2011-2022 走看看