//----------------------------------------------------------------------------------------------------------------------------------------------------- public override int GetHashCode() { if (ClrBinding != null) { return(127 ^ ClrBinding.GetHashCode()); } return(17 ^ base.GetHashCode()); }
//----------------------------------------------------------------------------------------------------------------------------------------------------- public TypeMember MakeGenericType(params TypeMember[] typeArguments) { if (this.ClrBinding != null && !typeArguments.Any(t => t.ClrBinding == null)) { return(ClrBinding.MakeGenericType(typeArguments.Select(t => t.ClrBinding).ToArray())); } var constructedType = new TypeMember(this.Namespace, this.Visibility, this.TypeKind, this.Name, typeArguments); constructedType.GenericTypeDefinition = this; return(constructedType); }
//----------------------------------------------------------------------------------------------------------------------------------------------------- private void BindClrParameters() { var clrParameters = ClrBinding.GetParameters(); for (int i = 0; i < clrParameters.Length; i++) { var parameter = new MethodParameter( name: clrParameters[i].Name, position: i + 1, type: clrParameters[i].ParameterType, modifier: GetParameterModifier(clrParameters[i])); this.Parameters.Add(parameter); } }