zoukankan      html  css  js  c++  java
  • C#9.0

    C#9.0 

     //对象声明
     Person person1 = new ("111", "222");//语法糖
    
    //静态修饰
     Func<int> func = static () => 1;
    
    //为空判断
     if (name is not null) { }
    
    //模式运算
    Func<char, Boolean> func1 = (c) => c is >= 'a' and <= 'z' or >= 'A' and <= 'Z';
    
     //原生大小的数字类型
     //引入nint,nuint,nfloat  n表示native原生,改特性允许声明一个32位或64为
     nint nintValue = 11;//在32位主机中编译,需要4个字节
     int nintValue2 = 22;//使用x64编译在64为主机编译时需要8个字节

    //init
    public class Demo
        {

            public string A { get; init; }

            public string B { get; init; }
        }
    //初始化
     Demo _demo= new Demo(){ A = "11",  B = "222"};

    //record
    public record Person
        {

            public Person(string first, string last) => (FirstName, LastName) = (first, last);

            public string FirstName { get; init; }

            public string LastName { get; init; }

        }

    //初始化
     Person person = new Person("123", "456");
    var otherPerson = person with { FirstName = "Elva2" }; //不同的引用
    var otherPerson2 = person with { };//值一样,引用不一样

    ///Lambda参数弃元
      Func<int, int, int> func5 = (_, b) => b * 100;
      Func<int, int, int> func6 = (a, _) => a * 100;


    ///枚举做基类约束
     public class GerenicInfo<T> where T : Enum 
    {
    }
    //约束泛型类型不能为空
     public class GerenicInfo2<J> where J : unmanaged
            { }



    C# 8.0

     
    //接口定义方法
    
    public interface IUser
        {
            void GetById(int id);
            public void GetList()
            {
                Console.WriteLine("接口可定义方法");
            }
        }
    
     //switch
      string   weekName = weekofDay switch
     {
                0 => "周日",
                1 => "周一",
                2 => "周二",
                3 => "周三",
                4 => "周四",
                5 => "周五",
                6 => "周六",
                _ => ""
    };
    
    //switch 元组
    string Demo(string s, string s1) => (s, s1) switch
      {
                ("1", "1") => "22",
                ("2", "2") => "33",
                _ => "00/不匹配"
    };
    
    //5.静态本地函数
    int iValue2 = Demo();
    static int Demo()
     {
              return Add(10, 23);
              static int Add(int i, int j) => i + j;
     }
    
     //7.可为空引用类型
    string? str = null;

    C# 7.0

    //out变量
    int.TryParse(input, out int result); 
    int.TryParse(input, out var result1);
    
    //元组
    (string First, string Two) tValue = ("One", "Two");
    Console.WriteLine(tValue.First);
    Console.WriteLine(tValue.Two);
    
     var tValue2 = (First: "One", Two: "Two");
     tValue2.First = "One2";
     Console.WriteLine(tValue2.First);
     tValue.Two = "Two2";
    Console.WriteLine(tValue2.Two);
    
    //模式匹配
     int iValue = 123;
     int sum = 234;
    if (iValue is int count) //如果iValue是int类型,则赋值给count
            sum += count;
    
    //本地函数
    string lValue = LocalValue("123");
    string LocalValue(string name)
    {
             return name + "-----";
     }
    
    //数字文本语法改进
     long lgValue = 100_000_000;

    //switch
    IEnumerable<object> iList=new List<object>()
                    {

                      0,new List<int>(){ 1,2,34},
                      100,null
                    };
    int sum = 0;
    foreach (var i in iList)
    {
       switch (i)
        {

         case 0: break;
           case IEnumerable<int> inList:
                            {
                                foreach (var item in inList)
                                {
                                    sum += (item > 0) ? item : 0;
                                }
                                break;
                            }

           case int n when n > 0:
             sum += n;
                            break;
           default: break;
            case null: break;

                    }
    }

    C# 6.0

    //  using static
    using static System.Math;
    
    double dValue = Math.Pow(1, 2);
    double dNewValue = Pow(3, 4);//静态引入后,可直接使用方法Pow
    
     //NULL 条件运算符 ?.  ??
    Student student = null;
    String fuleName = student?.FullName;//获取属性
    string ToStrValue = student?.ToString();//调用函数方法
    fuleName = fuleName ?? "姓名-01";
    
    //异常筛选器--catch() when 
    try
    {
       int iValue = Int32.Parse("s");
    }
     catch (Exception ex) when (ex.Message.Contains("未将对象"))
    {
            throw ex;
    }
    
    //Dictionary初始化
     Dictionary<int, string> keyValuePairs = new Dictionary<int, string>() {
                    { 1,"12"},
                    {2,"2" }
                    };
    
    keyValuePairs = new Dictionary<int, string>()
    {
    
         [3] = "333",
         [4] = "444"
     };
  • 相关阅读:
    【ACM】nyoj_139_我排第几个_201308062046
    【ACM】poj_2356_Find a multiple_201308061947
    【ACM】hdu_zs2_1007_Problem G _201308031028
    【ACM】hdu_zs2_1006_Problem F_201308031058
    【ACM】hdu_zs2_1005_Problem E _201308030747
    【ACM】hdu_zs2_1004_Problem D _201308030856
    【葡萄城报表案例分享】项目施工进度报告 – 树形报表
    【葡萄城报表案例分享】电力设备生产数据的多层分组统计报表实现
    葡萄城报表之多维透视表 – 矩表实现商品销售对比统计
    葡萄城报表之矩表 – 现代数据分析中必不可少的报表工具
  • 原文地址:https://www.cnblogs.com/Linc2010/p/14334878.html
Copyright © 2011-2022 走看看