Задать значение по умолчанию для свойств интерфейса? - PullRequest
5 голосов
/ 12 октября 2011

У меня есть интерфейс, который содержит одно свойство.Мне нужно установить значение по умолчанию для этого свойства.Как это сделать?.Также рекомендуется ли иметь значение по умолчанию для свойства в интерфейсе?или здесь использование абстрактного класса уместно?

Спасибо заранее

Ответы [ 2 ]

6 голосов
/ 12 октября 2011

Нельзя установить значение по умолчанию для свойства интерфейса.

Использовать абстрактный класс в дополнение к интерфейсу (который устанавливает только значение по умолчанию и не реализует ничего другого):

    public interface IA {
        int Prop { get; }

        void F();
    }

    public abstract class ABase : IA {
        public virtual int Prop
        {
            get { return 0; }
        }

        public abstract void F();
    }

    public class A : ABase
    {
        public override void F() { }
    }
1 голос
/ 12 октября 2011

Интерфейсы не содержат реализации.Все, что они делают - это подписи членов.

Реализация интерфейса интерфейса может иметь любое значение по умолчанию для любого свойства.

Например, абстрактный класс может вернутьзначение по умолчанию для любого из его свойств.

...