大家好,
我有一个符合我通过反思获得的特定标准的“类型”列表。每种类型都是用户在运行时可能会选择的不同功能。如果我稍后添加更多子类,这个动态实现将让我不必记住更新用户控件是这里的想法。
类型列表很好,但最好显示一些比名称更有意义的东西,因为它是用代码编写的。例如,代替“RacingBikeDesigner”,我想显示“Racing Bike Designer”,甚至可能显示与该类型相关的其他属性,如“Description”,以便用户知道该特定选择的作用。
所以我想问题是,给定一个类型,我怎样才能为用户提供更有意义的表示?我可以为每个子类添加一个静态字段并从 Type 调用它,或者我可以以某种方式使用类型转换器吗?
用户控件(ListBox、ComboBox 等)绑定到下面的返回值,但它对用户不友好:
List<string> LeftHandedUserChoices = new List<string>();
Type[] AllTypesInThisAssembly = Assembly.GetAssembly(typeof(UserChoices)).GetTypes();
foreach (Type _currentType in AllTypesInThisAssembly)
if (_currentType.IsSubclassOf(typeof(UserChoices)))
LeftHandedUserChoices.Add(_currentType.Name);
return LeftHandedUserChoices;
干杯,Q