Beispiel #1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public override int GetHashCode()
        {
            if (ClrBinding != null)
            {
                return(127 ^ ClrBinding.GetHashCode());
            }

            return(17 ^ base.GetHashCode());
        }
Beispiel #2
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        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);
        }
Beispiel #3
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        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);
            }
        }