我有一个枚举,有两个值。但是,第二个值包含一个斜杠(值为application/xml)。这会导致出现一些语法值。有没有像这样的成员枚举是不可能的?是否有可能具有包含斜线的值的枚举?
如果是这样,那么解决方案是什么?
谢谢
我有一个枚举,有两个值。但是,第二个值包含一个斜杠(值为application/xml)。这会导致出现一些语法值。有没有像这样的成员枚举是不可能的?是否有可能具有包含斜线的值的枚举?
如果是这样,那么解决方案是什么?
谢谢
Enum值只能是整数类型(字节,为sbyte,短,USHORT,INT,UINT,长或ulong)。枚举名称只能是valid .NET identifiers =>否/
可能。因此,无论您想要做什么(您没有在您的问题中解释过),解决方案都不会使用枚举。一种可能的选择是使用Dictionary<TKey, TValue>
。但是,如果不知道你的确切情况以及你想达到的目标,很难提出准确的答案。
如果它是一个字符串放置@符号infront的引号。这应该工作。 @"application/xml"
枚举值必须是整数类型,但如果要将字符串映射到字符串,则可以使用Dictionary<string, string>
。请参阅documentation。
不,你没有给出枚举值的值,你提供了标识符这些值。标识符必须遵循与其他地方的标识符相同的规则,即不包含斜杠。
这个答案点击我。谢谢。 – 2016-10-25 17:48:07
你可以只使用一个辅助类,并声明这些值作为常量字符串:
public static class MimeTypes
{
public const string ApplicationXml = "application/xml";
public const string AsfVideo = "video/wmv";
}
...
string xmlMime = MimeTypes.ApplicationXml;
解决方案通常是为了枚举成员的名称更改为一个有效的.NET标识,比如'ApplicationXml'。有什么阻止你这样做吗? – 2011-03-26 18:52:15
不是。这只是我将在http请求中使用这个值,所以我需要将/ back放入,但这对于一些字符串解析来说非常简单。 – dotnetdev 2011-03-26 19:01:06