Eu tenho interface IResourcePolicy
contendo a propriedade Version
. Eu tenho que implementar essa propriedade que contém valor, o código escrito em outras páginas:
IResourcePolicy irp(instantiated interface)
irp.WrmVersion = "10.4";
Como posso implementar propriedade version
?
public interface IResourcePolicy
{
string Version
{
get;
set;
}
}
Respostas:
Na interface, você especifica a propriedade:
Na classe de implementação, você precisa implementá-lo:
Isso parece semelhante, mas é algo completamente diferente. Na interface, não há código. Você apenas especifica que existe uma propriedade com um getter e um setter, o que quer que eles façam.
Na classe, você realmente os implementa. A maneira mais curta de fazer isso é usar esta
{ get; set; }
sintaxe. O compilador criará um campo e gerará a implementação de getter e setter para ele.fonte
Version
é público na classe? Ahh, eu vejo o meu problema: se você implementar a interface explicitamente (por exemploIResourcePolicy.Version
, você não pode definir se é público.Você quer dizer assim?
fonte
As interfaces não podem conter nenhuma implementação (incluindo valores padrão). Você precisa mudar para a classe abstrata.
fonte
O exemplo simples de uso de uma propriedade em uma interface:
fonte
J.Random Coder responde e inicializa o campo da versão.
fonte
Você deve usar a classe abstrata para inicializar uma propriedade. Você não pode inicializar no Inteface.
fonte