people類
public class People { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } /// <summary> ///C#6新語法. :8.自動實作的屬性初始化器 /// </summary> public DateTime BirthDay { get; set; } = DateTime.Now.AddYears(-22); /// <summary> /// C#6新語法:在屬性/方法里使用Lambda運算式(Expression bodies on property-like function members) /// </summary> public string NameFormat => string.Format("姓名:{0}", "NameFormat"); /// <summary> /// C#6新語法:在屬性/方法里使用Lambda運算式(Expression bodies on property-like function members) /// </summary> public void Print() => WriteLine(NameFormat); }
1.匯入靜態類:
之前的寫法:靜態類.
{ Console.WriteLine("Hello!");
Console.WriteLine($"之前的使用方式[靜態類.]:{Math.Max(2, 3)}");
}
C#6的寫法:
//引入命名空間 using static System.Math; using static System.Console;
WriteLine("Hello!"); WriteLine($"現在的使用方式引入命名空間,這邊直接呼叫:{ Max(2, 3)}");
2.字串嵌入值
#region 2.字串嵌入值(String interpolation) { WriteLine($"Id:{people.Id} 姓名:{people.Name} 生日:{people.BirthDay.ToString("yyyy-MM-dd")}"); WriteLine($"{(people.Age >= 25 ? "臘肉" : "鮮肉")}"); WriteLine($"Id:{{{people.Id}}} 姓名:{{{people.Name}}}"); } #endregion
3.空值運算子
#region 3.空值運算子(Null-conditional operators) 可空判斷 { int? iValue = https://www.cnblogs.com/wangwangwangMax/archive/2020/12/01/null; string sValue = https://www.cnblogs.com/wangwangwangMax/archive/2020/12/01/iValue?.ToString();//string sValue = https://www.cnblogs.com/wangwangwangMax/archive/2020/12/01/iValue.ToString();不判斷會報錯 iValue =https://www.cnblogs.com/wangwangwangMax/archive/2020/12/01/ Convert.ToInt32(sValue); WriteLine($"iValue:{iValue}"); string sName = ""; WriteLine($"sName:{sName?.ToString()}"); } #endregion
4.物件初始化器
#region 4.物件初始化器(Index Initializers) { //之前通過add方法,add keyvalue進去 { IDictionary<int, string> dictOld = new Dictionary<int, string>() { }; dictOld.Add(1, "M"); dictOld.Add(2, "A"); dictOld.Add(3, "X"); foreach (var keyValue in dictOld) { Console.WriteLine($"key:{keyValue.Key},value:{keyValue.Value}"); } } { IDictionary<int, string> dictOld1 = new Dictionary<int, string>() { { 1,"M"},{ 2,"A"},{ 3,"X"} }; } { //通過索引的方式給欄位進行初始化 IDictionary<int, DateTime> dictNew = new Dictionary<int, DateTime>() { [1] = DateTime.Now, [2] = DateTime.Now.AddDays(-1), [3] = DateTime.Now.AddDays(-2) }; foreach (var keyValue in dictNew) { Console.WriteLine($"key:{keyValue.Key},value:{keyValue.Value}"); } } } #endregion
5.例外過濾器
#region 5.例外過濾器(Exception filters) { int iExceptionValue = https://www.cnblogs.com/wangwangwangMax/archive/2020/12/01/2; try { Int32.Parse("S");//Parse型別強制轉換 } catch (Exception e) when (iExceptionValue > 1) { WriteLine(e.Message); } } #endregion
6.nameof運算式
#region 6.nameof運算式 (nameof expressions) { /*比如我們平時喜歡寫字串的形式,如果專案越來越大,后期突然哪個不用了, * 使用字串的形式維護起來就會很麻煩,用nameof就可以很好的解決,最重要的是不會影響性能!*/ WriteLine(nameof(people)); WriteLine(nameof(people.Name)); } #endregion
7.在屬性/方法里使用Lambda運算式
/// <summary> /// C#6新語法:在屬性/方法里使用Lambda運算式(Expression bodies on property-like function members) /// </summary> public string NameFormat => string.Format("姓名:{0}", "NameFormat"); /// <summary> /// C#6新語法:在屬性/方法里使用Lambda運算式(Expression bodies on property-like function members) /// </summary> public void Print() => WriteLine(NameFormat);
#region 7.在屬性/方法里使用Lambda運算式(Expression bodies on property-like function members) { people.Print(); } #endregion
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/228251.html
標籤:.NET技术
上一篇:禁止google瀏覽器http鏈接強制跳轉為https
下一篇:C#7 的一些新語法
