Расширение свойства (property) базового класса - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Есть базовый абстрактный класс, в котором объявлено свойство только на get; Хочу в дочернем классе расширить это свойство и на set; Реально ли это? Все мои попытки приводят к ошибкам: 1. Если пробую добавить set в override версию, то
cannot override because `Base.Property' does not have an overridable set accessor
2. Если пробую добавить свойство с таким же именем на set, то
The type `Derived' already contains a definition for `Property'
3. Если пробую скрыть свойство через new, то
`Derived.Property' hides inherited abstract member `Base.Property'
using System;
 
abstract class Base
{
    public abstract int Property { get; }
}
 
class Derived : Base
{
    private int property; 
    
    public override int Property 
    {
        get { return property; }
        // set { property = value; } // cannot override because `Base.Property' does not have an overridable set accessor
    } 
    
    /*public int Property // The type `Derived' already contains a definition for `Property'
    {
        set { property = value; } 
    } */
    
    /*public new int Property // `Derived.Property' hides inherited abstract member `Base.Property'
    {
        get
        {
            return property;
        }
        set
        {
            property = value;
        }
    } */
}
 
public class Test
{
   public static void Main()
   {
      Base d = new Derived();
   }
}

Решение задачи: «Расширение свойства (property) базового класса»

textual
Листинг программы
    public abstract class MyBase
    {
        public virtual bool HasSomething
        {
            get { return true; } 
            set { throw new NotSupportedException(); }
        }
    }
 
    public class Derived1 : MyBase
    {
    }
 
    public class Derived2 : MyBase
    {
        public override bool HasSomething { get; set; }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы