日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 中 System.Index 结构体和 Hat 运算符(^)的全新用法

發布時間:2023/12/4 C# 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 中 System.Index 结构体和 Hat 运算符(^)的全新用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

翻譯自 John Demetriou 2019年2月17日 的文章?《C# 8 – Introducing Index Struct And A Brand New Usage For The Hat Operator》

今天我們要講的是 Hat 運算符(^)。目前為止,Hat 運算符(^)已經被用作布爾類型的異或運算符,以及字節、整型類型的按位異或運算符。在 C# 8 中,它有一個新的用法。

這個運算符的新用法是自動創建?Index?結構體的實例。那什么是?Index?結構呢?這在 C# 8 中也有介紹。
Index?結構體的代碼(就像所有的 C# 代碼一樣)可以在 github 上找到。你可以看到,它是一個相當簡單的結構體,包含一個整數值,和一個定義是否應該從末尾開始計數的布爾值。
它有助于讓訪問數組比以往容易很多。我們可以很輕松地將這個值存儲在一個?Index?類型中來代替一個整數,它比一個簡單的整數更清楚地定義了我們的意圖,并有助于避免該變量的誤用。

到目前為止,當嘗試訪問數組中特定索引處的值時,我們總是從第一個元素開始考慮。那么 Hat 運算符(^)是如何幫助我們的呢?例如,如果你想獲取一個已知大小的數組的最后一個的元素,你通常會從數組的 Length 中減去 1,并在檢索時使用這個技巧或硬編碼的數字。

例如:

int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[4];

你可以像下面的例子一樣使用數組提供的變量:

int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[array.Length - 1];

這種方法也可以用于編譯時長度未知的數組。并且這通常是首選方法,因為它表明您希望更容易地檢索最后一項,而不是必須進行計數來查看哪個是第四項并驗證它是最后一項。

適當的使用?Index?結構,我們可以很容易地創建一個索引值類型,這樣我們就可以存儲它并隨心地重用它,以避免違反 DRY 原則。

Index lastItem = new Index(4, false); int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[lastItem];

譯者注:
DRY 是 “Don't repeat yourself” 的縮寫,是軟件開發的一個原則,旨在減少軟件模式的重復,用抽象來替代它,或者使用數據規范化來避免冗余。也就是說,在一個設計里,對于任何東西,都應該有且只有一個表示,其它的地方都應該引用這一處。這樣需要改動的時候,只需調整這一處,所有的地方就都變更過來了。

但正如我們所看到的,我們還可以使用 fromEnd 參數來更好地表達我們希望檢索最后一項,并在編譯時從一個大小未知的數組中檢索最后一項。

Index lastItem = new Index(1, true); int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[lastItem];

不過,我們需要記住的一點是,當從末尾開始計數時,不是以 0 開始的索引。把它想象成我們使用的?Length - x?,其中?x?就是我們在?Index?結構體構造函數中使用的值。

但是 Hat 運算符(^)在這一切中有何用武之地呢?唔,Hat 運算符(^) 是調用?Index?結構體時將 fromEnd 設置為 true 的簡寫方式。比如,下面的兩行是完全相同的:

Index lastItem = new Index(1, true);// line 1 int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[lastItem];Index lastItem = ^1;//line 2, 同 line 1 int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[lastItem];

或者,如果你想要檢索倒數第二項,你可以這么做:

Index secondToLast = new Index(2, true); int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[secondToLast];Index secondToLast = ^2; int[] array = new int[] { 1, 3, 5, 7, 9 }; var x = array[secondToLast];

就這樣,一個新的結構體類型和一個舊運算符(^)的新用法包裝在一起了。

作者 :John Demetriou ?
譯者 :技術譯民
出品 :技術譯站(https://ITTranslator.cn/)

END

總結

以上是生活随笔為你收集整理的C# 中 System.Index 结构体和 Hat 运算符(^)的全新用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。