具有枚举类型的泛型类型
本文关键字:泛型类型 类型 枚举 | 更新日期: 2023-09-27 18:34:34
我正在为某种命令使用的参数类编写代码。此命令有两个主要问题:
- 可选值 - 这是要选择的可选值。
- 选定值 - 用户选择。
用户输入为:从枚举中选择一个成员。
代码:
public enum eUserChoice
{
Choice1,
Choice2,
Choice3
};
public class Parameter<ENUM_TYPE>
{
public ENUM_TYPE OptionalValues {get;} // WRONG USING
public ENUM_TYPE Value {get; set;}
}
请求的代码行为:
Parameter<eUserChoice> myParam = new Parameter<eUserChoice>()
myParam.Value = myParam.OptionalValues.Choice1;
// OR:
// myParam.Value = myParam.OptionalValues.Choice1 | myParam.OptionalValues.Choice2;
当我写"myParam.OptionalValues"时。我希望这等于写"eUserChoice"。(智能感知很重要(。
我不确定是否有可能...你觉得怎么样?
泛型不是魔法。使用以下行
public ENUM_TYPE OptionalValues {get;}
您正在创建一个可以具有 ENUM_TYPE 类型的值的属性。但是,您希望让 OptionalValues
属性链接到类型本身。这是不可能的。
泛型只是允许您创建某种类模板(C++ 人员:不是那种模板(,该模板为您提供的每种类型的ENUM_TYPE生成一个新类。仅此而已。