假设我有一个只读属性和一个具体类的接口,其中属性在构造函数中实例化并标记为只读。防止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