コメントに追加情報がある場合、この問題の解決策の 1 つは、認証を必要とするメソッドをカプセル化する小さなクラスを作成することです。
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
}
明らかに、これらのパターンの両方を拡張して、抽象クラスまたは静的クラス自体内の「ログインしていない」または「認証されていない」アクションを処理できます。これにより、少なくとも、問題へのアプローチ方法についていくつかのアイデアが得られるはずです。