Определение, использует ли параметр & # 8220; params & # 8221; используя отражение в C #?
-
06-07-2019 - |
Вопрос
Рассмотрим подпись этого метода:
public static void WriteLine(string input, params object[] myObjects)
{
// Do stuff.
}
Как я могу определить, что метод WriteLine 'myObjects " pararameter использует ключевое слово params и может принимать переменные аргументы?
Решение
Проверьте наличие [ParamArrayAttribute]
на нем.
Параметр с params
всегда будет последним параметром.
Другие советы
Проверьте ParameterInfo , если ParamArrayAttribute был применен к нему:
static bool IsParams(ParameterInfo param)
{
return param.GetCustomAttributes(typeof (ParamArrayAttribute), false).Length > 0;
}
Немного короче и удобочитаемее:
static bool IsParams(ParameterInfo param)
{
return param.IsDefined(typeof(ParamArrayAttribute), false);
}
Не связан с StackOverflow