C# enum.toString()与类常量字符串
我正在开发一个.NETcore项目,在该项目中,我使用ApicController处理前端请求,并手动解析JObject,如下所示:C# enum.toString()与类常量字符串,c#,asp.net-mvc,C#,Asp.net Mvc,我正在开发一个.NETcore项目,在该项目中,我使用ApicController处理前端请求,并手动解析JObject,如下所示: public IActionResult CreatePublicUser([FromBody]JObject body) { string Username = body["Username"].ToString(); } 我创建了一个枚举,它基本上允许我使用enumUser.Username.toString(),而
public IActionResult CreatePublicUser([FromBody]JObject body)
{
string Username = body["Username"].ToString();
}
我创建了一个枚举,它基本上允许我使用enumUser.Username.toString(),而不是显式地写“Username”
public enum enumUserModel
{
Username,
Password
}
然而,显然我不得不经常这样做,所以我决定创建一个带有常量的类,如下所示:
public class UserModelConstants {
public static const Username = "Username";
public static const Password = "Password";
}
因此,我可以改为编写usermodelstants.Username,这使代码看起来更好、更容易理解。此外,根据在线文章,它的性能比enumUser.Username.toString()更好。
但如果我使用常量方法,那么我必须编写另一个类来处理将常量转换为int以写入数据库(基本上再次使用enum)
那么,最好的方法是什么呢?enumUserModel.Username.ToString()。如果您已经通过实际指标确定运行时效率是一个问题,
publicstaticconstusername=enumUserModel.Username.ToString()如果可以的话,请避免使用“魔法字符串”。@EdPlunkett您不能将ToString()
分配给const
,可以吗?另一种方法:@GSerg哇!说得好。我应该说公共静态只读字符串Username=enumUserModel.Username.ToString()代码>我也非常喜欢枚举上的描述属性。我敦促OP考虑这个方法。这是一个静态方法,所以可以用来初始化只读静态字段。@Ed Plunkett好主意,我会试试的,谢谢enumUserModel.Username.ToString()
。如果您已经通过实际指标确定运行时效率是一个问题,publicstaticconstusername=enumUserModel.Username.ToString()如果可以的话,请避免使用“魔法字符串”。@EdPlunkett您不能将ToString()
分配给const
,可以吗?另一种方法:@GSerg哇!说得好。我应该说公共静态只读字符串Username=enumUserModel.Username.ToString()代码>我也非常喜欢枚举上的描述属性。我敦促OP考虑这个方法。这是一个静态方法,所以可以用来初始化只读静态字段。@Ed Plunkett好主意,我会试试的,谢谢!