Как определить, является ли 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
Хотя я никогда не слышал об этом раньше.