gpt4 book ai didi

c# - 如何用类型填充组合框

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:40 25 4
gpt4 key购买 nike

我正在为我的游戏创建一个编辑器,作为 C# 中的 Windows 窗体项目。在很多情况下,我想用父类的所有可能的派生类型填充一个组合框。例如,您正在添加一个项目,因此您从列表“武器、盔甲、弹药、消耗品、货币等”中进行选择。 (这些都是派生自“item”的类)

目前,我手动为列表中的每个类型定义一个枚举,其中包含一个成员,然后使用枚举来填写组合框中的选项。然后我需要两本字典:一本从枚举到类型,一本从类型到枚举。通过这种方式,我可以在选择项目时刷新组合框以显示项目的类型,并且可以在组合框接受用户输入时用新实例化的项目替换项目。

这一切都很好,手动输入一个枚举和两个字典似乎是糟糕的代码,只是为了显示和选择代码库中已经存在的事物列表。

我怎样才能做得更好?

最佳答案

您可以使用反射获取所有具有 Item 基类型的类类型,并使用该数据填充 ComboBox;然后告诉它要向用户显示 Type 的哪个属性(可能是 Name)。

foreach (var item in Assembly.GetExecutingAssembly().GetTypes()
.Where(x => x.BaseType == typeof(Item)))
{
comboBox1.Items.Add(item);
}

comboBox1.DisplayMember = "Name";

关于c# - 如何用类型填充组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31528909/

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