无法从 C# 中的字典 属性 获取值
Can't get values from Dictionary Property in C#
我有下面的 class 代码称为 Role
public static class Role
{
private static Dictionary<string, List<Permissions>> _userRole;
private static List<Permissions> _userPermission;
public static Dictionary<string, List<Permissions>> UserRoleInfo
{
get { return _userRole; }
}
public Role()
{
_userRole = new Dictionary<string, List<Permissions>>();
_userPermission = new List<Permissions>();
}}
在另一个 class 中,我正在尝试从 UserRoleInfo 属性
中获取匹配键的值
List<Permissions> value = Role.UserRoleInfo(authenticatedUserName)
但我收到以下错误
Error 7 Non-invocable member 'User.Role.UserRoleInfo' cannot be used like a method.
知道如何绕过它或我的错误在哪里,因为使用
if(Role.UserRoleInfo.ContainsKey(authenticatedUserName))
工作正常
您需要使用方括号来访问字典的成员:
List<Permissions> value = Role.UserRoleInfo[authenticatedUserName];
在 C# 中获取字典值的正确语法是
Role.UserRoleInfo[authenticatedUserName]
从实例构造函数初始化静态成员不是一个好主意。您可能希望构造函数也为 static
。 (或使字段和 属性 成为非静态的 - 以对您的使用更有意义的为准)
我有下面的 class 代码称为 Role
public static class Role
{
private static Dictionary<string, List<Permissions>> _userRole;
private static List<Permissions> _userPermission;
public static Dictionary<string, List<Permissions>> UserRoleInfo
{
get { return _userRole; }
}
public Role()
{
_userRole = new Dictionary<string, List<Permissions>>();
_userPermission = new List<Permissions>();
}}
在另一个 class 中,我正在尝试从 UserRoleInfo 属性
中获取匹配键的值List<Permissions> value = Role.UserRoleInfo(authenticatedUserName)
但我收到以下错误
Error 7 Non-invocable member 'User.Role.UserRoleInfo' cannot be used like a method.
知道如何绕过它或我的错误在哪里,因为使用
if(Role.UserRoleInfo.ContainsKey(authenticatedUserName))
工作正常
您需要使用方括号来访问字典的成员:
List<Permissions> value = Role.UserRoleInfo[authenticatedUserName];
在 C# 中获取字典值的正确语法是
Role.UserRoleInfo[authenticatedUserName]
从实例构造函数初始化静态成员不是一个好主意。您可能希望构造函数也为
static
。 (或使字段和 属性 成为非静态的 - 以对您的使用更有意义的为准)