У меня есть интерфейс, IResourcePolicy
содержащий свойство Version
. Я должен реализовать это свойство, которое содержит значение, код, написанный на других страницах:
IResourcePolicy irp(instantiated interface)
irp.WrmVersion = "10.4";
Как я могу реализовать собственность version
?
public interface IResourcePolicy
{
string Version
{
get;
set;
}
}
Ответы:
В интерфейсе вы указываете свойство:
В реализующем классе вам необходимо реализовать его:
Это выглядит похоже, но это нечто совершенно другое. В интерфейсе нет кода. Вы просто указываете, что есть свойство с геттером и сеттером, что бы они ни делали.
В классе вы фактически реализуете их. Самый короткий способ сделать это - использовать этот
{ get; set; }
синтаксис. Компилятор создаст поле и сгенерирует реализацию getter и setter для него.источник
Version
публично в классе? Ах, я вижу свою проблему: если вы реализуете Интерфейс явно (напримерIResourcePolicy.Version
, вы не можете определить, является ли он общедоступным.Вы имеете в виду, как это?
источник
Интерфейсы не могут содержать какую-либо реализацию (включая значения по умолчанию). Вам нужно переключиться на абстрактный класс.
источник
Простой пример использования свойства в интерфейсе:
источник
J.Random Кодер отвечает и инициализирует поле версии.
источник
Вы должны использовать абстрактный класс для инициализации свойства. Вы не можете инициировать в Inteface.
источник