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;
                }
            }
    
    
        }
    }
    
  • 相关阅读:
    mysql替代like模糊查询的方法
    8个超实用的jQuery插件应用
    判断登陆设备是否为手机
    SQL tp3.2 批量更新 saveAll
    SQL-批量插入和批量更新
    防止手机端底部导航被搜索框顶起
    php COM
    thinkphp3.2 where 条件查询 复查的查询语句
    Form表单提交,js验证
    jupyter notebook 使用cmd命令窗口打开
  • 原文地址:https://www.cnblogs.com/bridgew/p/12709062.html
Copyright © 2011-2022 走看看