public enum WebWizDateFormat
{
DDMMYY,
MMDDYY,
YYDDMM,
YYMMDD
}
public class WebWizForumUser
{
public WebWizDateFormat DateFormat { get; set; }
public WebWizForumUser()
{
this.DateFormat = WebWizDateFormat.DDMMYY;
HttpContext.Current.Response.Write(this.DateFormat);
}
}
这样可行,但是当我响应它时,它需要以“dd / mm / yy”格式出现,我该怎么做?
答案 0 :(得分:6)
简单的答案是不要使用枚举。静态类怎么样?
public static class WebWizDateFormat
{
public const string USFormat = "MM/DD/YY";
public const string UKFormat = "DD/MM/YY";
}
// . . .
string dateFormat = WebWizDateFormat.USFormat;
(只是一个示例,将字段重命名为适合您的任何内容。)
答案 1 :(得分:0)
最简单的方法就是使用你用枚举的相应字符串表示填充的Dictionary<WebWizDateFormat,string>
,即
DateMapping[WebWizDateFormat.DDMMYY] = "dd/mm/yy";
然后你可以做
HttpContext.Current.Response.Write(DateMapping[this.DateFormat]);
答案 2 :(得分:0)
您对此转换的规定不明确。你可以这样做:
this.DateFormat.ToLower().Insert(4, "\\").Insert(2,"\\");
但我怀疑,这就是你的意思...... ;-)
这也可能对您有所帮助:Enum ToString with user friendly strings
答案 3 :(得分:0)
序言:我建议不要使用枚举项名称来表示数据(给定枚举值和类型的can get the string name)。我还建议使用隐式分配的枚举值作为微妙的更改,例如添加或删除枚举项可能会产生微妙的不兼容的更改/错误。
在这种情况下,我可能只是创建一个从枚举值到字符串格式的映射,例如:
public enum WebWizDateFormat
{
DDMMYY = 1,
MMDDYY = 2,
YYDDMM = 3,
YYMMDD = 4,
// but better, maybe, as this abstracts out the "localization"
// it is not mutually exclusive with the above
// however, .NET *already* supports various localized date formats
// which the mapping below could be altered to take advantage
ShortUS = 10, // means "mm/dd/yy",
LongUK = ...,
}
public IDictionary<string,string> WebWizDateFormatMap = new Dictionary<string,string> {
{ WebWizDateFormat.DDMMYY, "dd/mm/yy" },
// "localized" version, same as MMDDYY
{ WebWizDateFormat.ShortUS, "mm/dd/yy" },
... // define for -all-
};
// to use later
string format = WebWizDateFormatMap[WebWizDateFormat.ShortUS];
快乐编码