[英]Can an indexer parameter ever be null?
這是我的類中帶有自定義索引器的代碼 :
public string this[string key]
{
get => /* ... */;
set
{
if (key != null) doSomething(key, value);
}
}
現在,ReSharper強調key != null
檢查並說:
表達永遠是真的。
雖然我確實相信ReSharper在這里是正確的,但我不明白為什么。
也許語言規范強制執行此操作?
我的問題:
索引器參數可以為null嗎?
更新1:
在由於我太笨而刪除我的問題之前,請注意ReSharper為什么寫警告:
我從IDictionary<TKey, TValue>
派生了我的類,該類似乎由ReSharper注釋,索引器參數沒有null
。
因此,警告。 很抱歉張貼這樣的非問題。
不知道為什么ReSharper如此確定表達式始終為true,因為您可以將null傳遞給索引器。 但是,如果有兩個接受引用類型的索引器,則除非對null進行強制轉換,否則對null的索引將是不明確的。 也許ReSharper沒有考慮到仍然可以強制為null的事實,因此假設您永遠不能將null傳遞給索引器,這再次證明是不正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.