gpt4 book ai didi

c# - 使用 comboBox.DisplayMember 和 ValueMember 属性是个坏主意吗?

转载 作者:行者123 更新时间:2023-11-30 20:49:49 30 4
gpt4 key购买 nike

我正在向 WinForms 应用程序添加一个组合框,我遇到了 DisplayMember 和 ValueMember 属性。它们的功能正是我的应用程序所需要的,但我不确定我是否喜欢它们的工作方式。

comboBox.Items.Add(myObj);
comboBox.DisplayMember = "Name";
comboBox.ValueMember = "Id";

在上面的代码中,我的对象是实际的“项目”,它的名称和 Id 属性将分别用于显示的文本和选定的值。我不确定的是硬编码的“名称”和“Id”被传递到这些属性中。那是编译时没有检查的东西。因此,如果我将我的 object.Name 属性更改为 object.FullName,此代码将在运行时中断。

我考虑过动态获取属性名称(如这里所问:get name of a variable or parameter),但感觉很不对。

那么,使用这些属性是不明智的吗?如果是这样,将我的对象存储为组合框项的推荐方法是什么?

最佳答案

使用它们非常好。

关于编译时检查的问题:在下一个版本的 C# 中有一个 nameof 运算符,与现在已经存在的 typeof 相当。

你可以这样使用它:

comboBox.DisplayMember = nameof(obj.Name);

solutions已经在那里得到类似的结果。

关于c# - 使用 comboBox.DisplayMember 和 ValueMember 属性是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23071025/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com