繁体   English   中英

具有枚举类型的泛型类型

[英]Generic type with enum type

我正在为某种命令正在使用的参数类编写代码。 此命令有两个主要问题:

  • OptionalValues-这是要选择的可选值。
  • SelectedValue-用户选择。

用户输入是:从枚举中选择一个成员。

编码:

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的。 仅此而已。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM