• 关于C#7 新语法糖


    C#7新语法糖  

    1.Switch 使用  goto 使用  

    var kk = 1;
    switch (kk)
    {
      case 1:
        Console.WriteLine(1);
        goto case 4;
      case 2:
        Console.WriteLine(2);
        goto case 3;
      case 3:
        Console.WriteLine(3);
        goto default;
      case 4:
        Console.WriteLine(4);
        goto default;
      default:
        Console.WriteLine("default");
        break;
    }
    
    /**switch 用法, 在循环中可 分别多种类型 而且可以 进行类型,内容初步判断**/
    List<object> objList = new List<object> { "1", 1, 1.22F };
    var sum = 0d;
    foreach (var item in objList)
    {
      switch (item)
      {
        case string str when int.TryParse(str, out int result):
          sum += result;
          break;
        case int number:
          sum += number;
          break;
        case float number when number > 1:
          sum += number;
          break;
        default:
          break;
      }
    }
    
    Console.WriteLine(sum);

    2.Object?.属性  新语法糖, 可以排除 对象为Null 的情况 , 不能排除属性为null 的情况

    
    TmpClass1 obj1 = null;  //对象为null
    var int16 = obj1?.tmpAtt ?? 0;// ??0 是判断 如果属性为空,则给默认值
    var str = obj1?.tmpAtt1 ?? "0";// ??0 是判断 如果属性为空,则给默认值
    Console.WriteLine(int16);
    Console.WriteLine(str);
    int16 = 16;
    Console.WriteLine($"平均成绩:{(int16 > 80 ? int16 : 0):F2}");

    3.Tuple 元组使用   与   解元组,元组调整为结构体,以前是类

    Tuple<int, int> tuple = new Tuple<int, int>(1, 2);
    Console.WriteLine($"第一个元素item1:{tuple.Item1}   第二个元素item2:{tuple.Item2}");
    (string Message, int Code) tuple7 = ("请求失败", 500);
    Console.WriteLine($"第一个元素Message:{tuple7.Message}   第二个元素Code:{tuple7.Code}");
    var tuple7t = (Message: "请求成功!", Code: 200);
    Console.WriteLine($"第一个元素Message:{tuple7t.Message}  第二个元素Code:{tuple7t.Code}");
    
    /**解析方法**/
    var (Message, Code) = tuple7;
    Console.WriteLine($"解析元组  第一个元素Message:{Message}  第二个元素Code:{Code}");
    var (Item1, Item2) = tuple;
    Console.WriteLine($"解析元组  第一个元素Item1:{Item1}  第二个元素Item2:{Item2}");
    
    TmpClass1 obj1 = new TmpClass1(10, "牛牛");
    var (age, name) = obj1;
    Console.WriteLine($"解析元组  第一个元素age:{age}  第二个元素name:{name}");

    4.参数 params 使用    可以代替数组,不过可读性不强

    class Program
    {
            Main方法
            static void Main(string[] args)
            {
                AnyWrite("text", 1, "abvc");
            }
            
            static void AnyWrite(params object[] data)
            {
                foreach (var item in data)
                {
                    Console.WriteLine(item);
                }
            }
    }

     

  • 相关阅读:
    指定的 LINQ 表达式包含对与不同上下文关联的查询的引用
    无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类
    获取路径 GetModuleFileName() GetModuleFileName() GetCurrentDirectory
    重启动界面 ShellExecute() ShellExecute()
    MFC 强大功能函数
    extern 头文件 定义&声明
    全局变量/常量
    有时不需要头文件包含也能编译过
    字符串(3):字符串与函数
    函数不能传递动态内存
  • 原文地址:https://www.cnblogs.com/nnqwbc/p/11113621.html
Copyright © 2020-2023  润新知