目錄範圍型別
替代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 的使用結合...