无法从 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];
  1. 在 C# 中获取字典值的正确语法是

    Role.UserRoleInfo[authenticatedUserName]
    
  2. 从实例构造函数初始化静态成员不是一个好主意。您可能希望构造函数也为 static。 (或使字段和 属性 成为非静态的 - 以对您的使用更有意义的为准)