假設我有一個只讀屬性和一個具體類的接口,其中屬性在構造函數中實例化並標記爲只讀。防止resharper「可能的空引用異常」警告
internal interface IExample
{
ObservableCollection<string> Items { get; }
}
internal class Example : IExample
{
private readonly ObservableCollection<string> _items;
public Example()
{
_items = new ObservableCollection<string>();
}
public ObservableCollection<string> Items
{
get { return _items; }
}
}
當我使用接口Resharper警告我,我可能在調用代碼中有一個可能的空引用。
public class ExampleWithWarnings
{
public void Show()
{
IExample example = new Example();
// resharper warns about null reference
example.Items.Add("test");
}
}
我意識到,根據定義,接口並不保證該屬性將有一個值。 (我也認識到界面上的屬性並不理想)。但我知道這個屬性總是有價值的。
是否有任何魔術屬性可以放在界面上,以防止Resharper顯示警告?我寧願不必用禁用編譯指示警告來修飾該類的所有用法。
我不假設你會考慮卸載Resharper?您可以通過直接初始化只讀成員來關閉它,而不是在構造函數中進行。這是同一件事。 – 2011-03-02 20:05:37
您使用的是哪個版本的ReSharper? – 2011-03-02 20:09:05
@Hans,這個問題不是具體的類。 – bryanbcook 2011-03-02 20:09:10