Как скрывать в редакторе ненужные свойства и методы при наследовании? - C#

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

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

Согласно MSDN есть базовый класс Control, Label является его наследником. Однако в Label скрыта часть свойств, событий и методов базового класса. Например, скрыто свойство BackgroundImage, оно присутствует, если набирать вручную, но через точку не доступно. Как добиться такого же эффекта? Нагуглил вот такую штуку - [EditorBrowsable(EditorBrowsableState.Never)], но это не работает, из С "видно" V и W
class C
    {
        class A
        {
            protected int v;
 
            public virtual int V { get { return v; } set { v = value; } }
 
            public virtual int W()
            {
                return v;
            }
 
            public A(int v)
            {
                this.v = v;
            }
        }
 
        class B : A
        {
            [EditorBrowsable(EditorBrowsableState.Never)]
            public override int V { get { return base.V; } }
 
            [EditorBrowsable(EditorBrowsableState.Never)]
            public override int W()
            {
                return base.W();
            }
 
            public B(int v)
                :base(v)
            {
                
            }
        }
 
        public C()
        {
            B n = new B(2);
            System.Console.WriteLine(n.V);
            System.Console.WriteLine(n.W());
 
            System.Console.ReadLine();
        }
    }

Решение задачи: «Как скрывать в редакторе ненужные свойства и методы при наследовании?»

textual
Листинг программы
public class Label : Control
{
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [SRDescription("LabelBackgroundImageDescr")]
    [EditorBrowsable(EditorBrowsableState.Never)]
    [Browsable(false)]
    [SRCategory("CatAppearance")]
    public override Image BackgroundImage
    {
      get
      {
        return base.BackgroundImage;
      }
      set
      {
        base.BackgroundImage = value;
      }
    }
}

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


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

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

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