Digamos que tengo una interfaz con una propiedad de solo lectura y una clase concreta donde la propiedad se crea una instancia en el constructor y se marca como de solo lectura.Advertencias de Prevent Resharper "Posible excepción de referencia nula"
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; }
}
}
Cuando uso la interfaz Resharper me advierte que podría tener una posible referencia nula en el código de llamada.
public class ExampleWithWarnings
{
public void Show()
{
IExample example = new Example();
// resharper warns about null reference
example.Items.Add("test");
}
}
Me doy cuenta de que, por definición, la interfaz no garantiza que la propiedad tenga un valor. (También reconozco que las propiedades en las interfaces no son ideales). Pero sé que esta propiedad siempre tendrá un valor.
¿Hay algún atributo mágico que pueda poner en la interfaz que impida que Resharper muestre una advertencia? Prefiero no tener que decorar todos los usos de la clase con una advertencia de desactivar pragma.
No creo que consideraría la desinstalación de ReSharper? Posiblemente pueda apagarlo inicializando el miembro de solo lectura directamente en lugar de hacerlo en el constructor. Es lo mismo. –
¿Qué versión de ReSharper estás usando? –
@Hans, el problema no es la clase concreta. – bryanbcook