Как скрывать в редакторе ненужные свойства и методы при наследовании? - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д