C#語法新特性之元組實(shí)例詳解
1.元組(Tuple)
元組(Tuple)在4.0 的時(shí)候就有了,但元組也有些缺點(diǎn),如:
1)Tuple 會(huì)影響代碼的可讀性,因?yàn)樗膶傩悦际牵篒tem1,Item2.. 。
2)Tuple 還不夠輕量級(jí),因?yàn)樗且妙愋停–lass),對于一個(gè)變量要使用一個(gè)類型,有點(diǎn)太沒必要了。
源代碼如下:
// 摘要:
// 提供用于創(chuàng)造元組對象的靜態(tài)方法。若要瀏覽此類型的.NET Framework 源代碼,請參閱 Reference Source。
public static class Tuple
{
// 返回結(jié)果:
// 一個(gè)元組,其值 (item1)。
public static Tuple<T1> Create<T1>(T1 item1);
// 返回結(jié)果:
// 一個(gè) 2 元組,其值 (item1, ,item2)。
public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2);
}
提供用于創(chuàng)造元組對象的靜態(tài)方法
備注:上述所指 Tuple 還不夠輕量級(jí),是從某種意義上來說的或者是一種假設(shè),即假設(shè)分配操作非常的多。
C# 7 中的元組(ValueTuple)解決了上述兩個(gè)缺點(diǎn):
1)ValueTuple 支持語義上的字段命名,可以為每一個(gè)屬性名字自定義名稱.如(int first,int second) tuple=(1,2)。
2)ValueTuple 是值類型(Struct)。
注:如果vs報(bào)沒有預(yù)定義類型ValueTuple<...>的錯(cuò)誤時(shí),需要使用nuget命令導(dǎo)入: Install - Package System.ValueTuple
源代碼如下(ValueTuple<...>內(nèi)部原理):
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;
}
}
總結(jié):元組的出現(xiàn)在一定程度上簡化了面向?qū)ο?有些不必要或者很少使用的對象可以直接使用元組來返回,而不需要再通過類型的方式去返回
以上所述是小編給大家介紹的C#語法新特性之元組實(shí)例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
C# 對Outlook2010進(jìn)行二次開發(fā)的圖文教程
下面小編就為大家分享一篇C# 對Outlook2010進(jìn)行二次開發(fā)的圖文教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
C#使用開源驅(qū)動(dòng)連接操作MySQL數(shù)據(jù)庫
這篇文章主要介紹了C#使用開源驅(qū)動(dòng)連接操作MySQL數(shù)據(jù)庫,本文講解使用SourceForge上的mysqldrivercs驅(qū)動(dòng)連接操作MySQL數(shù)據(jù)庫,需要的朋友可以參考下2015-02-02
C#實(shí)現(xiàn)把圖片轉(zhuǎn)換成二進(jìn)制以及把二進(jìn)制轉(zhuǎn)換成圖片的方法示例
這篇文章主要介紹了C#實(shí)現(xiàn)把圖片轉(zhuǎn)換成二進(jìn)制以及把二進(jìn)制轉(zhuǎn)換成圖片的方法,結(jié)合具體實(shí)例形式分析了基于C#的圖片與二進(jìn)制相互轉(zhuǎn)換以及圖片保存到數(shù)據(jù)庫的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
C#實(shí)現(xiàn)的Win32控制臺(tái)線程計(jì)時(shí)器功能示例
這篇文章主要介紹了C#實(shí)現(xiàn)的Win32控制臺(tái)線程計(jì)時(shí)器功能,結(jié)合實(shí)例形式分析了C#基于控制臺(tái)的時(shí)間操作相關(guān)技巧,需要的朋友可以參考下2016-08-08

