在 C# 中限制表单类属性的访问修饰符

Posted

技术标签:

【中文标题】在 C# 中限制表单类属性的访问修饰符【英文标题】:Restrict Access Modifier of Form Class Properties in C# 【发布时间】:2019-04-27 11:14:22 【问题描述】:

我创建了一个继承 Windows.FORMDLL 类,我想限制它的 properties Access Modifier比如 Size(width-height) & FormBorderStyle to Private

在另一个程序集中无法访问。我应该怎么做,什么是相关的? 也许使用抽象类?谢谢你的帮助

【问题讨论】:

【参考方案1】:

不要这样做。

access modifiers 旨在指导开发人员。它们绝不提供任何防止使用的保护。

想要访问它们的开发人员能够访问它们,即使它们是私有的,并且弄乱框架默认值可能会导致严重的问题。


或者...

如果您的表单是一个完全独立的功能或特性,请在表单周围制作一个包装器。

例如:

//the wrapper
public class PropertyPages : IPropertyPages

     //your wrapped form...
     private YourForm _propertyForm = new YourForm(); 

     //a public show, but the form itself remain inaccessible.
     public void Show()
     
         _propertyForm.Show();
     

【讨论】:

以上是关于在 C# 中限制表单类属性的访问修饰符的主要内容,如果未能解决你的问题,请参考以下文章

C#语言中的修饰符汇总

C# 五大修饰符

在Java和c#中如果不写访问修饰符,类和类成员默认的是啥访问修饰符?

在Java和c#中如果不写访问修饰符,类和类成员默认的是啥访问修饰符?

C#关键字:访问修饰符

修饰符