Mono.Cecil - Как узнать, что метод имеет переменные-аргументы? - PullRequest
0 голосов
/ 09 января 2019

В C # у нас есть __arglist ключевое слово, которое делает метод переменным-аргументом следующим образом:

public static void PrintFormat(string format, __arglist) 
{
    ....
}

Он компилируется в:

.method public hidebysig static vararg void PrintFormat ( string format ) cil managed 
{
    ....
} 

Обратите внимание, что vararg. Итак, как мы можем знать, что метод имеет переменные-аргументы в Mono.Cecil?

1 Ответ

0 голосов
/ 09 января 2019

@ JeroenMostert указал на это. Источник .

public static bool IsVarArg (this IMethodSignature self)
{
    return (self.CallingConvention & MethodCallingConvention.VarArg) != 0;
}
...