Erro do Compilador CS0546
'accessor': não pode substituir porque 'property' não tem um acessador set substituível
Falha na tentativa de substituir um dos métodos do acessador para uma propriedade porque o acessador não pode ser substituído. Esse erro pode acontecer se:
a propriedade de classe base não for declarada como virtual.
a propriedade de classe base não declarar o acessador get ou set que você está tentando substituir.
Se você não quiser substituir a propriedade de classe base, poderá usar a palavra-chave new antes da propriedade na classe derivada.
Para obter mais informações, consulte Propriedades using.
O exemplo a seguir gera o erro CS0546 porque a classe base não declara um acessador definido para a propriedade.
// CS0546.cs
// compile with: /target:library
public class a
{
public virtual int i
{
get
{
return 0;
}
}
public virtual int i2
{
get
{
return 0;
}
set {}
}
}
public class b : a
{
public override int i
{
set {} // CS0546 error no set
}
public override int i2
{
set {} // OK
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: