關於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);
            }
        }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM