public override bool Equals(object obj) { VirtualParameter other = obj as VirtualParameter; if (other == null) { return(false); } // Do we need to compare Name and ParameterType? return (Member == other.Member && Position == other.Position && ParameterType == other.ParameterType); }
internal static ParameterInfo[] CloneParameters(MemberInfo member, ParameterInfo[] parameters, bool skipLastParameter) { int length = parameters.Length; if (skipLastParameter) { length--; } ParameterInfo[] clonedParameters = new ParameterInfo[length]; for (int i = 0; i < length; i++) { ParameterInfo parameter = parameters[i]; clonedParameters[i] = new VirtualParameter(member, parameter.ParameterType, parameter.Name, parameter.Position); } return(clonedParameters); }
private ParameterInfo[] GetIndexParametersNoCopy() { if (_indexedParameters == null) { MethodInfo method = GetGetMethod(true); if (method != null) { _indexedParameters = VirtualParameter.CloneParameters(this, method.GetParameters(), skipLastParameter: false); } else { method = GetSetMethod(true); Contract.Assert(null != method); _indexedParameters = VirtualParameter.CloneParameters(this, method.GetParameters(), skipLastParameter: true); } } return(_indexedParameters); }