簡體   English   中英

確定方法接受的參數數量

[英]Determining the number of parameters accepted by a method

是否可以獲取方法接受的參數數量,然后單獨訪問這些參數的值? 我想創建一個方法,它連接方法的所有參數的值,除了最后一個參數。 但是,參數的數量和參數的名稱取決於所訪問的方法。

是否可以執行類似於以下偽代碼的操作?

StringBuilder string = new StringBuilder();

for(int i = 0; i < Method.Parameters.Count - 1; i++)
{
     string.Append(Method.Parameters[i].Value);
}

非常感謝你 :)

這樣做:

Type.GetType("MyClassType").GetMethod("foo").GetParameters().Length;

如果你有一個像這樣的方法

void Foo(string s, int x, int y, bool flag)

那么你不需要以編程方式確定參數的數量 - 你已經知道有4個參數。

{
    StringBuilder sb = new StringBuilder().Append(s)
                                          .Append(x)
                                          .Append(y);
}

如果您希望該方法接受任意數量的參數,那么您可以使用params關鍵字來定義您的方法,如下所示:

void Baz(params object[] args)

參數作為數組傳遞給您的方法,因此您可以從數組長度確定參數的數量:

{
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < args.Length - 1; i++)
    {
        sb.Append(args[i]);
    }
}

用法:

Baz("xyzzy", 42, 0, false);

暫無
暫無

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

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