Implementé una clase singleton y continúo recibiendo la advertencia de que un método que estoy escribiendo es un 'nuevo miembro protegido declarado en una clase de sello'. No está afectando la compilación pero realmente no quiero ignorar la advertencia en caso de que cause problemas más adelante. Entiendo que una clase sellada es una clase que no se puede heredar, por lo que sus métodos no pueden anularse, pero todavía no entiendo por qué el siguiente código me daría la advertencia (¿se debe al uso del diseño singleton?):'Miembro protegido en clase sellada' advertencia (una clase singleton)
namespace WPFSurfaceApp
{
public sealed class PresentationManager
{
PresentationManager()
{
}
protected void MethodName()
{
}
public static PresentationManager Instance
{
get
{
return Nested.instance;
}
}
class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}
internal static readonly PresentationManager instance = new PresentationManager();
}
}
EDITAR: La advertencia se refiere al método MethodName(). EDITAR: Cambiar void public MethodName() a void protegido MethodName()
¿Qué ocurre si haces que la clase 'Anidada' sea 'privada'? –
No veo nada protegido allí ... –
No pasó nada, las advertencias siguen allí. Creo que para ser honesto, no va a tener nada que ver con el diseño singleton; tiene más que ver con modificadores cerrados de clase y acceso, pero pensé que lo mencionaría e incluiría el código de clase anidado de todos modos por si acaso. –