继承只读属性

时间:2015-02-18 06:24:48

标签: c# .net

在Microsoft文档中,Control类的只读属性控件的声明如下:

[BrowsableAttribute(false)]
public Control.ControlCollection Controls { get; }

我继承了这个属性。隐藏它:

[EditorBrowsable(EditorBrowsableState.Never)]
[BrowsableAttribute(false)]
[ComVisible(false)]
public new Control.ControlCollection Controls { get; }

但这不会编译? 错误:'UserControl1.Controls.get'必须声明一个正文,因为它没有标记为abstract或extern。自动实现的属性必须定义get和set访问器。

所以我改变了它:

[EditorBrowsable(EditorBrowsableState.Never)]
[BrowsableAttribute(false)]
[ComVisible(false)]
public new Control.ControlCollection Controls { 
    get { return null; } }

哪个编译。但我需要一些属性功能,而不是完全取消它。 (我必须向这篇文章的早期受访者道歉,因为我在这里进行了大量的编辑。)(30秒内!!) 我必须改变我的剧本...所以我试试:

[EditorBrowsable(EditorBrowsableState.Never)]
[BrowsableAttribute(false)]
[ComVisible(false)]
public new Control.ControlCollection Controls { get; private set; }

这也不会编译:错误:' UserControl1.Controls.set'的可访问性修饰符访问者必须比财产或索引者更具限制性' UserControl1.Controls'

要做些什么?

1 个答案:

答案 0 :(得分:1)

这就是我的建议。

[EditorBrowsable(EditorBrowsableState.Never)]
[BrowsableAttribute(false)]
[ComVisible(false)]
public new Control.ControlCollection Controls { 
    get { return base.Controls; } }