Как определить, является ли ParameterInfo возвращаемым параметром

Как можно определить, является ли ParameterInfo такое параметр возврата?

Я написал функцию ниже, но я обеспокоен тем, что могу что-то упустить:

public bool IsReturnParameter(ParameterInfo parameter){
    var method = parameter.Member as MethodInfo;
    return method != null && parameter.Equals(method.ReturnParameter);
}

Я основываю это на паре предположений, которые могут быть ошибочными: (1) Параметры объявляются для членов, которые MethodInfo, ConstructorInfo или же PropertyInfo (индексаторы). (2) ConstructorInfo а также PropertyInfo никогда не будет возвращаемого параметра.

2 ответа

Решение

Вы можете проверить, если ParameterInfo.Position == -1... но проверка на равенство выглядит одинаково хорошо... хотя в некоторых случаях она не будет корректно обрабатывать переопределения, интерфейсы или универсальные типы.

Предполагая, что вы имеете в виду out int foo, ты хочешь parameter.IsOut,

Если вы хотите вернуть значение, попробуйте IsRetval Хотя я никогда не слышал об этом раньше.

Другие вопросы по тегам