假设我有一个具有只读属性的接口,以及一个具体的类,其中属性在构造函数中实例化并标记为只读.
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出现警告?我宁愿不必使用disable pragma警告来修饰类的所有用法.