gpt4 book ai didi

.Net - 避免魔术字符串的策略

转载 作者:行者123 更新时间:2023-12-03 02:08:51 25 4
gpt4 key购买 nike

在工作代码中,我们有很多魔术字符串的用途,如以下代码片段:

if (user.HasRight("Profile.View")) {...}

所以有很多地方我们会传递一个字符串作为参数来查看用户是否有特定的权限。我不喜欢这样,因为这会产生很多神奇的字符串。

更好的方法是什么?

枚举、常量、类?

最佳答案

在这种特定情况下,请使用枚举。不会有魔术字符串,如果枚举发生变化(以破坏魔术字符串解决方案的方式),应用程序将不再编译。

public enum ProfilePermissions
{
View,
Create,
Edit,
Delete
}

然后你可以简单地拥有:

if(user.HasRight(ProfilePermissions.View)) { }

您也可以使用类,但是当涉及到更复杂的场景时,您就会限制自己。例如,将枚举简单更改为:

public enum ProfilePermissions
{
View = 1,
Create = 2,
Edit = 4,
Delete = 8
}

允许您使用按位运算符来获得更复杂的权限(例如,用户需要创建或删除的情况):

if(user.HasRight(ProfilePermissions.Create | ProfilePermissions.Delete));

关于.Net - 避免魔术字符串的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com