C#中的字符串枚举

彼得汀

有这个课程:

public static class Command
{
    public const string SET_STB_MEDIA_CTRL = "SET STB MEDIA CTRL ";
    public static string ECHO = "ECHO";
    public static string SET_CHANNEL = "SET CHANNEL ";
    public static string GET_VOLUMN = "GET VOLUMN";
    public static string GET_MAX_VOLUMN = "GET MAX VOLUMN ";
    public string SET_STB_MEDIA_LIST = "SET STB MEDIA LIST ";
}

然后:

public static class MultimediaConstants
{
    public const string VIDEO = "video";
    public const string AUDIO = "audio";
    public const string PHOTO = "photo";
    public const string ALL = "all";
    public const string BACKGROUND_MUSIC = "background_music";
    public const string TV = "tv";
    public const string ACTION_PLAY = "play";
}

关键是,我想拥有这样的东西:

public static string SET_STB_MEDIA_CTRL (MultimediaConstants type,  MultimediaConstants action)
{
    return Command.SET_STB_MEDIA_CTRL + "type:" + type + "action:" + action;
}

因此,此方法的结果应为:

 SET STB MEDIA CTRL type:tv action:play

该方法的调用将是:

 SET_STB_MEDIA_CTRL (MultimediaConstants.TV, MultimediaConstants.ACTION_PLAY);
务实的

解决此类问题的方法是,所涉及的类具有私有构造函数,并具有使用该实例的值初始化的公共静态字段/属性。这是具有固定数量的该类型的不可变实例的一种方法,同时仍然允许方法接受该类型的参数。

以下代码是有效的C#6.0。

public class Command
{
    private Command(string value)
    {
        Value = value;
    }

    public string Value { get; private set; }

    public static Command SET_STB_MEDIA_CTRL { get; } = new Command("SET STB MEDIA CTRL ");
    public static Command ECHO { get; } = new Command("ECHO");
    public static Command SET_CHANNEL { get; } = new Command("SET CHANNEL ");
    public static Command GET_VOLUMN { get; } = new Command("GET VOLUMN");
    public static Command GET_MAX_VOLUMN { get; } = new Command("GET MAX VOLUMN ");
    public static Command SET_STB_MEDIA_LIST { get; } = new Command("SET STB MEDIA LIST ");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#中获取枚举类型的字符串值

来自分类Dev

从c#中任何枚举类型的枚举对象获取枚举名称和字符串值

来自分类Dev

C#字符串文本,枚举类型

来自分类Dev

c#枚举标志检查字符串是否在标志中

来自分类Dev

如何将字符串解析为 C# 中相应的枚举条目?

来自分类Dev

在C ++ 11中将字符串枚举

来自分类Dev

使用TryParse将字符串值与C#中的枚举中的所有值进行比较-逻辑问题

来自分类常见问题

C#中损坏的字符串

来自分类Dev

C#中的字符串结尾

来自分类Dev

C#中的字符串表

来自分类Dev

C#中的$“ ... {} ...”字符串文字?

来自分类Dev

C#中的子字符串

来自分类Dev

在C#中更改字符串

来自分类Dev

如何在C#中的枚举结构内将双精度型转换为字符串

来自分类Dev

F#中的字符串枚举

来自分类Dev

Python中基于字符串的枚举

来自分类Dev

Nim中的字符串枚举类型?

来自分类Dev

枚举<-> JAVA中的字符串比较

来自分类Dev

在字符串枚举中搜索

来自分类Dev

C ++枚举[字符串]错误

来自分类Dev

c替代字符串枚举

来自分类Dev

字符串枚举

来自分类常见问题

枚举-在字符串转换中获取枚举的值

来自分类Dev

枚举值字符串中的枚举数组

来自分类Dev

获取整个枚举中的字符串并返回枚举常量

来自分类Dev

C#中字符之间的子字符串

来自分类Dev

C#中的字符串字符差异

来自分类Dev

使用C#计算Cookie字符串中的字符

来自分类Dev

从字符串C#中删除字符