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");