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

本文关键字:如果 成员 显示 属性 为什么 | 更新日期: 2023-09-27 18:18:24

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

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

可能是内置的数据绑定功能,只反映在公共属性上

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

虽然我不是c#专家,因为我是一个学生,我建议有一个"连接器"类,作为需要访问数据的外部成员的连接,以及设置新数据的内部类。