我正在使用C#和一些JSON和API。我想知道如何处理这样的事情。
JSON值之一是字符串,可以是以下值之一:“ Last_Day”,“ Last_Week”,“ Last_Month”。
在TypeScript中,我可以这样做:
type DateSince = "Last_Day" | "Last_Week" | "Last_Month"
然后我得到如下类型的提示:
如果该值不是那三个字符串,则显示红色花键行错误。从技术上讲,我的值仍然是字符串,这是我需要与JSON API请求和响应一起使用的值。
我还没有找到一种使用C#做到这一点的好方法。甚至可以相对轻松地用C#做到这一点吗?
我的理想解决方案是让我将自定义类型分配给变量,而不是使用字符串。这样,我就不必记住可能的字符串值。
答案 0 :(得分:2)
在C#中,您可以使用枚举。
public enum DateSince
{
Last_Day ,
Last_Week,
Last_Month
}
用法:
var datesince = DateSince.Last_Day;
答案 1 :(得分:0)
@PatrickRoberts和@afrazier建议,最好的方法是使用枚举和Json.NET StringEnumConverter。
[JsonConverter(typeof(StringEnumConverter))]
public enum DateSince
{
[EnumMember(Value = "LAST_DAY")]
LastDay,
[EnumMember(Value = "LAST_WEEK")]
LastWeek,
[EnumMember(Value = "LAST_MONTH")]
LastMonth,
}