Erro do compilador CS0546
'accessor' : não pode substituir porque 'property' não tem um acessador de conjunto substituível
Uma tentativa de substituir um dos métodos de acessador para uma propriedade falhou porque o acessador não pode ser substituído. Este erro pode ocorrer se:
A propriedade de classe base não é declarada como virtual.
A propriedade de classe base não declara o acessador get ou set que você está tentando substituir.
Se você não quiser substituir a propriedade de classe base, poderá usar a nova palavra-chave antes da propriedade na classe derivada.
Para obter mais informações, consulte Usando propriedades.
O exemplo a seguir gera 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: