如果属性是显示成员,为什么属性必须公开

时间:2011-12-20 00:13:25

标签: c# properties public internal

我的类的对象属性标记为“internal”。没有可访问性问题,整个项目中所有成员都可以访问它们。但是,如果我将任何这些属性设置为任何GUI组件的DisplayMember,则必须将其标记为“public”才能正常工作。否则,比如列表框,将对象的ToString()显示为项目。为什么会这样?

2 个答案:

答案 0 :(得分:3)

可能内置的数据绑定功能仅反映在公共属性上。

答案 1 :(得分:-2)

内部关键字的作用如下: internal关键字的主要目的是让当前程序集中的每个类都可以访问它。例如,如果您有.dll文件并在内部标记其某些类,则只有该.dll中的类可以访问它,并且没有其他外部程序集或外部程序可以访问它。如果您在程序集之外使用GUI,那么您刚刚违反了内部使用的内容。因此,您必须将该属性成员公开。

虽然我不是c#的专家,但因为我是学生,我建议使用“连接器”类作为与需要访问数据的外部成员的连接,以及设置新数据的内部类