程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#語法新特性之元組實例詳解

C#語法新特性之元組實例詳解

編輯:C#入門知識

C#語法新特性之元組實例詳解。本站提示廣大學習愛好者:(C#語法新特性之元組實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C#語法新特性之元組實例詳解正文


1.元組(Tuple)

元組(Tuple)在4.0 的時候就有了,但元組也有些缺點,如:

   1)Tuple 會影響代碼的可讀性,因為它的屬性名都是:Item1,Item2.. 。

   2)Tuple 還不夠輕量級,因為它是引用類型(Class),對於一個變量要使用一個類型,有點太沒必要了。

源代碼如下:

 // 摘要:
  //   提供用於創造元組對象的靜態方法。若要浏覽此類型的.NET Framework 源代碼,請參閱 Reference Source。
  public static class Tuple
  {
    // 返回結果:
    //   一個元組,其值 (item1)。
    public static Tuple<T1> Create<T1>(T1 item1);
    // 返回結果:
    //   一個 2 元組,其值 (item1, ,item2)。
    public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2);
  }

提供用於創造元組對象的靜態方法

   備注:上述所指 Tuple 還不夠輕量級,是從某種意義上來說的或者是一種假設,即假設分配操作非常的多。

 C# 7 中的元組(ValueTuple)解決了上述兩個缺點:

   1)ValueTuple 支持語義上的字段命名,可以為每一個屬性名字自定義名稱.如(int first,int second) tuple=(1,2)。

   2)ValueTuple 是值類型(Struct)。

注:如果vs報沒有預定義類型ValueTuple<...>的錯誤時,需要使用nuget命令導入: Install - Package System.ValueTuple

源代碼如下(ValueTuple<...>內部原理):

public struct ValueTuple<T1, T2> : IEquatable<ValueTuple<T1, T2>>, IStructuralEquatable, IStructuralComparable, IComparable, IComparable<ValueTuple<T1, T2>>, ITupleInternal
  {
    public T1 Item1;
    public T2 Item2;
    int ITupleInternal.Size
    {
      get
      {
        return 2;
      }
    }
    public ValueTuple(T1 item1, T2 item2)
    {
      this.Item1 = item1;
      this.Item2 = item2;
    }
     }

 總結:元組的出現在一定程度上簡化了面向對象,有些不必要或者很少使用的對象可以直接使用元組來返回,而不需要再通過類型的方式去返回

以上所述是小編給大家介紹的C#語法新特性之元組實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved