繁体   English   中英

继承只读属性

[英]inheriting a read-only property

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

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

我正在继承此属性。 并将其隐藏:

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

但这不能编译吗? 错误:“ UserControl1.Controls.get”必须声明一个主体,因为它没有被标记为抽象或外部。 自动实现的属性必须定义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”更具限制性。

对此该怎么办?

这就是我的建议。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM