簡體   English   中英

從調用方法獲取參數名稱

[英]Get the name of parameters from a calling method

我有一個使用C#.NET 2.0的項目(不能使用更高版本)。 我想在第一個調用的方法中獲取方法的參數名稱。 如果我從MyMethodsClass調用方法,則要遵循MyCheckClass類的isValid方法中指示的某些條件,接收一個指示哪個參數無效的字符串。

使用以下代碼,如果我將調用myMehtod(5,1,1),我將得到一個返回“請檢查5參數”的字符串。 但是我想獲得“請檢查一個參數”。

我該怎么辦? 謝謝!

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();               
    }
}

您將已經知道如何做的兩件事結合在一起。

  1. 如何找到調用當前方法的方法?
  2. 如何在C#中獲得方法參數的名稱?

這兩行應該為您做好工作,也許需要適應但應該工作^^

        MethodInfo info = typeof (MyMethodsClass).GetMethod("MethodName");
        string name = info.GetParameters()[indexOfTheFaultyOne].Name;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM