Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET中的方法和类型之间的一般区别是什么?_C#_Asp.net - Fatal编程技术网

C# ASP.NET中的方法和类型之间的一般区别是什么?

C# ASP.NET中的方法和类型之间的一般区别是什么?,c#,asp.net,C#,Asp.net,我正在创建一个在线应用程序,它需要一些C#代码。因此,我创建了一个新文件名:User.cs,在该文件中,我有以下代码: public class UserProperties { public string hasPermission (string permission) { // get the permissions of the user var db = Database.Open("VMS"); var roles = db.Q

我正在创建一个在线应用程序,它需要一些C#代码。因此,我创建了一个新文件名:User.cs,在该文件中,我有以下代码:

public class UserProperties {
    public string hasPermission (string permission) {
        // get the permissions of the user
        var db = Database.Open("VMS");
        var roles = db.Query("SELECT * FROM webpages_UsersInRoles 
        WHERE UserId =@0", WebSecurity.CurrentUserId);
        // Get the Role Id
        var getRole = "";
        foreach (var row in roles) {
            getRole = row.RoleId.ToString();
        }
        // Get the permission ID
        var permissions = db.Query("SELECT * FROM Permissions WHERE 
        LOWER(Permission_Name) = LOWER(@0)", permission);
        var permissionId = "";
        foreach (var row in permissions) {
            permissionId = row.Permission_Id.ToString();
        }
        // Now get the rolePermissions
        var role_permissions = db.Query("SELECT * FROM Role_Permissions 
        WHERE Role_Id =@0 AND Permission_Id =@1", getRole, permissionId);
        if(role_permissions.Count() == 0) {
            return "Not Allowed.";
        } else {
            return "Yes, full permission.";
        }
    }
}
这段代码将查找用户的权限,然后返回一个值。但这并没有发生。当我尝试执行它时:

@{ 
  new UserProperties.hasPermission("Create_Page");
}
这给了我一个例外:

CS0118:“User.hasPermission(string)”是一个“方法”,但与“类型”一样使用

我不知道我如何使用它作为一种类型

您需要使用:

new UserProperties().hasPermission("Create_Page")
或者,您可以将
haspmission
设置为静态,这样就不需要创建Instance

public static string hasPermission (string permission) { ... }

@{ 
  UserProperties.hasPermission("Create_Page");
}
您需要使用:

new UserProperties().hasPermission("Create_Page")
或者,您可以将
haspmission
设置为静态,这样就不需要创建Instance

public static string hasPermission (string permission) { ... }

@{ 
  UserProperties.hasPermission("Create_Page");
}

您只需添加括号即可:

@{ 
  new UserProperties().hasPermission("Create_Page");
}
newuserproperties()
创建一个
UserProperties
类的实例,然后在该类上调用
haspmission
方法


如果将
hasPermission
定义为
static
,则您的语法将是有效的(不需要实例来调用该方法)。

您只需添加括号:

@{ 
  new UserProperties().hasPermission("Create_Page");
}
newuserproperties()
创建一个
UserProperties
类的实例,然后在该类上调用
haspmission
方法


如果
hasPermission
被定义为
static
,那么您的语法将是有效的(不需要实例来调用方法)。

代码的第一行:

public class UserProperties
定义(对象)类型

下一行声明一个实例方法

除非创建UserProperties的实例

var userProperties = new UserProperties();
您不能调用
hasPermission()

您也可以(不推荐)创建一个静态方法

public static string hasPermission (string permission)

代码的第一行:

public class UserProperties
定义(对象)类型

下一行声明一个实例方法

除非创建UserProperties的实例

var userProperties = new UserProperties();
您不能调用
hasPermission()

您也可以(不推荐)创建一个静态方法

public static string hasPermission (string permission)

u必须创建UserProperties的实例

var up = new UserProperties();
up.hasPermission("Create_Page");
或者只是

new UserProperties().hasPermission("Create_Page");

您必须创建UserProperties的实例

var up = new UserProperties();
up.hasPermission("Create_Page");
或者只是

new UserProperties().hasPermission("Create_Page");

编译器被搞糊涂了。你告诉他创建一个新的,哦,不,获得一些方法的价值。我建议你开始阅读,从做小
你好,世界开始进入复杂的Web内容之前的应用程序类型。@JonathanLonowski,是的,你是对的。我只是错过了那篇偏执的论文。编译程序很混乱。你告诉他创建一个新的,哦,不,获得一些方法的价值。我建议你开始阅读,从做小
你好,世界开始进入复杂的Web内容之前的应用程序类型。@JonathanLonowski,是的,你是对的。我只是错过了那个妄想症……啊,非常感谢!:)我真的要用
static
和你的代码:)谢谢兄弟……啊,非常感谢!:)我真的要用
static
和你的代码:)谢谢兄弟。。。