zoukankan      html  css  js  c++  java
  • 关于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);
                }
            }
    }

     

  • 相关阅读:
    Apache ab压力测试时出现大量的错误原因分析
    图解linux下的top命令
    [转载]几种切词工具的使用(转)
    大规模中文文本处理中的自动切词和标注技术
    [转载]盘点:94版《三国演义》演员的今昔对比照
    搜索引擎切词详解
    iphone-命令行编译之--xcodebuild
    Appium IOS 自动化测试初探
    手把手教你appium_mac上环境搭建
    Appium-doctor 检测Xcode未安装问题
  • 原文地址:https://www.cnblogs.com/nnqwbc/p/11113621.html
Copyright © 2011-2022 走看看