无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C# ReadOnlySpan 模式

2023-01-17 10:52 作者:SunnieShine  | 我要投稿

從 C# 11 開始,ReadOnlySpan<char> 類型的實例將可以使用模式匹配來判斷內(nèi)部存儲的字符串信息。

1、語法

要知道,ReadOnlySpan<T> 類型是一個非常輕量級的存儲集合,它類似于數(shù)組,但數(shù)組是引用類型,該類型是值類型。它可以接收很多類型的實例作為存儲信息,當然,也包含 char。因此,C# 對這個類型有特殊處理:如果是 ReadOnlySpan<char> 的話,那么可以接收字符串來賦值:

而 C# 11 開始,我們支持該類型使用字符串的模式匹配規(guī)則來匹配該類型的對象。

比如這么使用。

2、null 對于 ReadOnlySpan<char> 的奇怪表現(xiàn)

請一定要注意,ReadOnlySpan<char> 是值類型,但你仍然可以賦個 null 過去:

這是被允許的。原因是 null 在這里是 char[]? 類型的對象,而對于 ReadOnlySpan<char>,是有一個隱式轉(zhuǎn)換的,簽名長這樣:

因此你可以這么做。但是,由于賦值之后的 s 對象是值類型,因此你不能對 ReadOnlySpan<char> 類型的實例使用 null 常量模式匹配:

這樣是錯誤的。因為模式匹配(尤其是關(guān)于 null 的常量模式),編譯器是不知道你這個隱式轉(zhuǎn)換的。這里的 s 是值類型 ReadOnlySpan<char> 類型的變量,而它既然是值類型,就永遠不可能為 null。因此,is null 將永遠返回 false。所以,這么使用是不合適的。

C# ReadOnlySpan 模式的評論 (共 條)

分享到微博請遵守國家法律
呼和浩特市| 镇巴县| 信丰县| 成安县| 交口县| 金华市| 十堰市| 奈曼旗| 饶阳县| 固阳县| 双柏县| 邹平县| 忻州市| 班戈县| 仙桃市| 广东省| 涪陵区| 拜泉县| 吉隆县| 济阳县| 高清| 潮安县| 抚松县| 石阡县| 庐江县| 依安县| 东台市| 纳雍县| 城固县| 玛沁县| 新蔡县| 中超| 武夷山市| 小金县| 抚州市| 兴义市| 靖西县| 嘉义市| 阿巴嘎旗| 河南省| 普陀区|