鉴于评论的附加信息,一个解决这个问题是创建一个小的类来封装需要身份验证方法:
abstract class AuthenticateClass
{
private bool AuthenticateUser(){
return true; // do your authentication
}
public int Perform(){
if (!AuthenticateUser()){
return -1;
} else
return AuthenticatedMethod();
}
protected abstract int AuthenticatedMethod();
}
这给你执行身份验证和一类,如果成功,执行你的方法。实现它想:
class SomeAuthentMethod : AuthenticateClass
{
protected override int AuthenticatedMethod()
{
return 10; // whatever method...
}
}
,并用它喜欢:
SomeAuthentMethod myMethod = new SomeAuthentMethod();
if (myMethod.Perform() = -1){
// unable to authenticate user, please log in, etc
}
如果认证通过这个返回10
,否则返回-1
(验证失败)。这使您可以生成任意数量的自动包含身份验证的方法。
或者,你可以使用一个静态类做认证 - 例如:
static class Authenticate
{
public delegate int MethodDelegate();
private static bool AuthenticateUser(){
return true; // do your authentication
}
public static int Perform(MethodDelegate MyMethod){
if (!AuthenticateUser())
{
return -1;
}
else return MyMethod();
}
}
在哪里然后你可以有:
private int myMethod(){
return 10; //whatever method...
}
,然后实现,如:
if (Authenticate.Perform(myMethod) = -1){
// unable to authenticate user, please log in, etc
}
很明显,您可以扩展这两种模式来处理“未登录”或“不可认证经过验证的“动作在抽象或静态类本身。这至少应该提供一些如何解决问题的想法。
我不认为有一种方法来执行这样的事情(很多语言是明确的)。如果我们知道“CheckScore”的目的是什么,以及为什么每当你调用一个(我假设的)公共方法时需要调用它,可能会有更好的解决方案。 – Matthew
为什么你需要这个功能。您是否有特定的理由要这样做? – Koushik
如果你想访问它,你应该使用'CheckScore'的代表。匿名函数是**内联**。 –