簡體   English   中英

索引器參數可以為null嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM