C 8 0 範圍型別 Range Type

2022-07-18 03:00:17 字數 1726 閱讀 8019

目錄範圍型別

替代substring方法

我們最原始的**如下:

static void main(string args)

; for(int i=1; i <= 3; i++)

console.readline();

}

這裡我們顯示的定義了我們查詢陣列的索引1-3, 並輸出他們的值。毫無疑問,當我們執行程式之後,**結果如下:

item2

item3

item4

但是,假設我們不想使用for迴圈,而是想要使用這個名為「range」的新特性, 我們可以將**重寫為:

static void main(string args);

foreach (var item in myarray[1..3])

console.readline();

}

結果:

item2

item3

結果比我們預想的少了乙個。這是我們使用範圍型別遇到的第乙個問題。

範圍的起始索引是包含的,範圍的結束索引是排除的

所以要想拿到正確結果應該是:

static void main(string args)

; foreach (var item in myarray[1..4])

console.readline();

}

static void main(string args)

; foreach (var item in myarray[1..])

console.readline();

}

輸出結果:

item2

item3

item4

item5

foreach (var item in myarray[..3])

輸出結果:

item1

item2

item3

foreach (var item in myarray[..])

輸出結果:

item1

item2

item3

item4

item5

操作符,操作符表示從陣列末尾計算索引。

foreach (var item in myarray[1..^1])

輸出結果:

item2

item3

item4

當我們編寫1..4的時候,看起來就好像我們在使用新的語法,實際上這只是個語法糖,實際上它初始化乙個range類物件,就好像我們可以使用就可以建立乙個陣列一樣

static void main(string args)

; range range = 1..4;

foreach (var item in myarray[range])

console.readline();

}

使用範圍型別的另乙個好處就是你可以使用它替換string.substring方法, 寫起來更加簡單

console.writeline("123456789"[1..4]);

C 8 0中的索引和範圍

c 8.0中的索引和範圍為訪問序列中的單個元素或範圍提供了簡潔的語法 system.index 型別可用於編制索引。可從 int 建立乙個從開頭開始計數的索引,也可使用字首 運算子 c 建立乙個從末尾開始計數的索引。0表示序列的length,所以 1才是序列的最後乙個數 所以如果直接使用a 0 效果...

C 8 0 可為空的引用型別

在寫反射建立例項時,報錯 將 null 文字或可能的 null 值轉換為不可為 null 型別 因為之前也寫過一模一樣的 報錯了很懵,就查了一下原因,順帶學習下 可以查到微軟官網給出的解釋 c 8.0 開始,可以使用可為 null 的引用型別 可為null的引用型別 c 引用 可為空的值型別 c 參...

C 8 0新特性介紹

c 語言是在2000發布的,至今已正式發布了7個版本,每個版本都包含了許多令人興奮的新特性和功能更新。同時,c 每個版本的發布都與同時期的 visual studio 以及 net 執行時版本高度耦合,這也有助於開發者更好的學習掌握 c 並將其與 visual studio 以及 net 的使用結合...