【发布时间】:2012-01-24 01:16:37
【问题描述】:
我有一个类,其对象属性标记为“内部”。不存在可访问性问题,并且在整个项目中所有成员都可以访问它们。但是,如果我将这些属性中的任何一个设置为任何 GUI 组件的 DisplayMember,则必须将其标记为“公共”才能正常工作。否则,比如说一个列表框,将对象的 ToString() 显示为项目。为什么会这样?
【问题讨论】:
标签: c# properties public internal
我有一个类,其对象属性标记为“内部”。不存在可访问性问题,并且在整个项目中所有成员都可以访问它们。但是,如果我将这些属性中的任何一个设置为任何 GUI 组件的 DisplayMember,则必须将其标记为“公共”才能正常工作。否则,比如说一个列表框,将对象的 ToString() 显示为项目。为什么会这样?
【问题讨论】:
标签: c# properties public internal
可能内置的数据绑定功能仅反映在公共属性上。
【讨论】:
internal 关键字的作用如下: internal 关键字的主要目的是让当前程序集中的每个类都可以访问它。例如,如果您有一个 .dll 文件并将其某些类标记为内部,则只有该 .dll 中的类可以访问它,其他外部程序集或外部程序都不能访问它。如果您在程序集之外使用 GUI,那么您只是违反了 internal 的用途。因此,您必须将该属性成员设为公开。
虽然我不是 c# 方面的专家,但因为我是一名学生,我建议使用“连接器”类来连接需要访问数据的外部成员,以及用于设置新数据的内部类.
【讨论】: