最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 7.0中解構(gòu)功能詳解

 更新時間:2018年08月20日 14:24:17   作者:莫問今朝乄  
這篇文章主要為大家詳細(xì)介紹了C# 7.0中的解構(gòu)功能,解構(gòu)元組、解構(gòu)對象等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文為大家分享了C# 7.0中的解構(gòu)功能,供大家參考,具體內(nèi)容如下

解構(gòu)元組

  C#7.0新增了諸多功能,其中有一項(xiàng)是新元組(ValueTuple),它允許我們可以返回多個值,并且配合解構(gòu)能更加方便的進(jìn)行工作,如下面例子

static void Main(string[] args)
{
 (var name, var age) = GetUser();
 Console.WriteLine($"name:{name}\nage:{age}");
}
public static (string name,int age) GetUser()
{
 return ("張三", 11);
}

可以看到解構(gòu)元組可以寫出優(yōu)雅的代碼,并且可以使用類型推斷,但在這里解構(gòu)元組并不是重點(diǎn),所以不過多關(guān)注,下面說一個有趣的功能

解構(gòu)對象

  解構(gòu)能力并不是只能解構(gòu)元組,他還有一個更加有意思的功能,就是解構(gòu)對象。是不是聽起來挺有意思。

static void Main(string[] args)
{
 var user = new User
 {
  Name = "張三",
  Age = 11,
  Email = "zhangsan@126.com",
     Sex="男"

 };
 (var name, var email) = user;
 Console.WriteLine($"name:{name}\nemail:{email}");
}

上面代碼是不是很驚奇,反正我第一次看到時特別驚訝,也感覺特別有意思,那么這到底怎么實(shí)現(xiàn)的呢,其實(shí)只是在類中添加一個解構(gòu)函數(shù)(Deconstruct)就可以,解構(gòu)參數(shù)方法名稱必須是Deconstruct,返回值必須是void,參數(shù)列表必須是out

public class User
{
  public string Name { get; set; }
  public string Email { get; set; }
  public int Age { get; set; }
  public string Sex { get; set; }
  //解構(gòu)函數(shù)
  public void Deconstruct(out string name,out string email)
  {
   name = Name;
   email = Email;
  }
}

是不是感覺特別簡單.

解構(gòu)函數(shù)還支持重載

class Program
{
 static void Main(string[] args)
 {
  var user = new User
  {
   Name = "張三",
   Age = 11,
   Email = "zhangsan@126.com",
      Sex="男"
  };
  (var name1, var email1) = user;
  Console.WriteLine($"name:{name1}\temail:{email1}");
  (var name2,var age2, var email2) = user;
  Console.WriteLine($"name:{name2}\tage:{age2}\temail:{email2}");
 }
} 
public class User
{
 public string Name { get; set; }
 public string Email { get; set; }
 public int Age { get; set; }
   public string Sex { get; set; }
 //解構(gòu)函數(shù)
 public void Deconstruct(out string name,out string email)
 {
  name = Name;
  email = Email;
 }
 //結(jié)構(gòu)函數(shù)重載
 public void Deconstruct(out string name,out int age,out string email)
 {
  name = Name;
  age = Age;
  email = Email;
 }
}

但是解構(gòu)不支持參數(shù)一致的重載

哪怕參數(shù)類型不一致

感覺像參數(shù)類型推斷錯誤,但是  

所以解構(gòu)函數(shù)并不參數(shù)數(shù)量相同的重載,哪怕參數(shù)類型不一致。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#模擬鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例解析

    C#模擬鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例解析

    這篇文章主要介紹了C#模擬鏈表數(shù)據(jù)結(jié)構(gòu)的實(shí)例解析,包括隊(duì)雙向鏈表的模擬方法,例子中隊(duì)鏈表的操作也有很好的說明,需要的朋友可以參考下
    2016-04-04
  • 判斷圖片-判斷位圖是否是黑白圖片的方法

    判斷圖片-判斷位圖是否是黑白圖片的方法

    近來工作需要判斷圖片否是是彩色的,由于是十萬張以上的大批量理處,所以通過序程來動自判斷。
    2013-05-05
  • C#微信公眾號開發(fā)之自定義菜單

    C#微信公眾號開發(fā)之自定義菜單

    這篇文章介紹了C#微信公眾號開發(fā)之自定義菜單,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#中的擴(kuò)展方法詳解

    C#中的擴(kuò)展方法詳解

    “擴(kuò)展方法使您能夠向現(xiàn)有類型“添加”方法,而無需創(chuàng)建新的派生類型、重新編譯或以其他方式修改原始類型?!边@是msdn上說的,也就是你可以對String,Int,DataRow,DataTable等這些類型的基礎(chǔ)上增加一個或多個方法,使用時不需要去修改或編譯類型本身的代碼。
    2014-09-09
  • js substr,substring與java substring和C# substring的區(qū)別解析

    js substr,substring與java substring和C# substring的區(qū)別解析

    本篇文章主要是對js中substr,substring與java中substring和C#中substring的區(qū)別進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法

    C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法,實(shí)例分析了通過自定義函數(shù)實(shí)現(xiàn)針對身份證合法性驗(yàn)證的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 一篇文章徹底搞清楚c#中的委托與事件

    一篇文章徹底搞清楚c#中的委托與事件

    這篇文章主要給大家介紹了如何通過一篇文章徹底搞清楚c#中的委托與事件,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • C#實(shí)現(xiàn)計(jì)算器功能

    C#實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • unity 如何判斷鼠標(biāo)是否在哪個UI上(兩種方法)

    unity 如何判斷鼠標(biāo)是否在哪個UI上(兩種方法)

    這篇文章主要介紹了unity 判斷鼠標(biāo)是否在哪個UI上的兩種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#根據(jù)前臺傳入實(shí)體名稱實(shí)現(xiàn)動態(tài)查詢數(shù)據(jù)

    C#根據(jù)前臺傳入實(shí)體名稱實(shí)現(xiàn)動態(tài)查詢數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了C#如何根據(jù)前臺傳入實(shí)體名稱實(shí)現(xiàn)動態(tài)查詢數(shù)據(jù)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-04-04

最新評論

宿松县| 剑阁县| 岳普湖县| 绩溪县| 静乐县| 唐河县| 巴楚县| 屏东县| 南宫市| 客服| 寿宁县| 绥阳县| 宜黄县| 灵宝市| 兰西县| 股票| 长治市| 长治市| 南溪县| 潍坊市| 邯郸县| 平遥县| 赫章县| 南城县| 达拉特旗| 古浪县| 美姑县| 台中县| 封开县| 昌吉市| 招远市| 巴中市| 乐都县| 福州市| 始兴县| 勃利县| 宁安市| 正阳县| 将乐县| 徐闻县| 乌拉特中旗|