2

C# .NET 2.0 を使用するプロジェクトがあります (それ以降のバージョンは使用できません)。最初のメソッドによって呼び出されたメソッド内のメソッドのパラメーターの名前を取得したいと思います。MyMethodsClass からメソッドを呼び出す場合、MyCheckClass クラスの isValid メソッドで示されているいくつかの条件に従って、無効なパラメーターを示す文字列を受け取りたいと考えています。

次のコードでは、myMehtod(5,1,1) を呼び出す場合に備えて、"Please check the 5 parameter" を返す文字列を取得します。しかし、「aパラメータを確認してください」と取得したいのです。

どうすればそれができますか?ありがとうございました!

public MyMethodsClass {

    public string myMethod (int a, int b, int c) {

        return MyCheckClass.isValid(a,b,c);
    }

    public string myMethod2 (int d, int e) {
        return MyCheckClass.isValid(d,e);
    }

}


//Other file
public class MyCheckClass {

    public static string isValid (params object[] parameters) {

            StringBuilder result= new StringBuilder();          
            for (int i = 0; i < parameters.Length; i++)
            {
                object p = parameters[i];
                //Some checks...
                if (p == null || p.Equals("") || p != 5)
                {                    
                    result.Append("Please check the " + p + " parameter");
                }
            }
            return result.toString();               
    }
}
4

2 に答える 2

3

すでに知っている 2 つのことを組み合わせます。

  1. 現在のメソッドを呼び出したメソッドを見つけるにはどうすればよいですか?
  2. C#でメソッドパラメータの名前を取得するにはどうすればよいですか?
于 2013-03-04T15:55:39.743 に答える
1

これらの 2 行は、おそらく適応する必要がありますが、動作するはずです ^^

        MethodInfo info = typeof (MyMethodsClass).GetMethod("MethodName");
        string name = info.GetParameters()[indexOfTheFaultyOne].Name;
于 2013-03-04T15:53:59.863 に答える