C# 如何在不实例化类的情况下使用它?

C# 如何在不实例化类的情况下使用它?,c#,asp.net,C#,Asp.net,我有课: static class GetRole { public static string OfUser(string username) { string result="None"; foreach (string key in WebConfigurationManager.AppSettings) { if (WebConfiguratio

我有课:

static class GetRole
    {
        public static string OfUser(string username)
        {
            string result="None";
            foreach (string key in WebConfigurationManager.AppSettings)
            {
                if (WebConfigurationManager.AppSettings[key].Contains(username))
                {
                    result = WebConfigurationManager.AppSettings[key];
                    break;
                }
            }

            return result;
        }
    }
我想像这样使用它

string role = GetRole.OfUser(username);
或者更像这样:

string role = GetRole(username);

我该如何做到这一点?

您的第一个使用示例非常准确:

string role = GetRole.OfUser(username);
静态成员表示它没有声明它的任何类型的实例。唯一可能给你带来麻烦的是你的类是内部的;这意味着您无法从其他程序集访问它。尝试将其设置为
公共静态类GetRole

我想这样使用它

这样做;这似乎是正确的。你试过了吗

或者更像这样:

string role = GetRole(username);
那是行不通的;您必须指定要调用的方法以及它来自哪个类

如果在调用它的代码所在的同一个类中有一个
static void GetRole
,那么可以这样做


然而,仅仅因为你能做某事并不意味着你应该做。“获取用户角色”的自然方式是调用属于用户本身的方法。这反过来意味着拥有一个用户类,您可以为每个用户实例化该类

string role = GetRole.OfUser(username);
您正在尝试在设置方法变量之前使用它。。。该方法检查
AppSettings[key].Contains(username))
,然后返回一个输出,因此该方法需要这样的字符串输入


string role=GetRole.OfUser(“NewUsername”)

虽然有点晚,但很容易做到

using static MyProjectNameSpace.GetRole;
现在您可以直接使用您的方法

OfUser("NewUserName");

静态方法将完全满足您的需要。你试过了吗?不是这样做的吗。。。你遇到了什么问题?编译器是怎么说的?你发布的代码不会得到那个错误。不是那些代码,你不会。你也可以要求我们帮助你,因为你立即借用了我们的代码。
OfUser("NewUserName");