예제 #1
0
        public override Type MakeGenericType(params Type[] typeArguments)
        {
            bool partial = false;

            Type[] args = UnderlyingSystemType.GetGenericArguments();
            int    j    = 0;

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i].IsGenericParameter)
                {
                    if (j >= typeArguments.Length)
                    {
                        partial = true;
                    }
                    else
                    {
                        args[i] = typeArguments[j++];
                    }
                }
            }
            Type typeDef = GetGenericTypeDefinition();

            if (partial)
            {
                return(new PartialGenericType(typeDef, args));
            }
            else
            {
                return(typeDef.MakeGenericType(args));
            }
        }
예제 #2
0
        public override int GetHashCode()
        {
            int hashCode = UnderlyingSystemType.GetHashCode();

            unchecked {
                foreach (CustomTypeModifier mod in Modifiers)
                {
                    hashCode *= 17;
                    if (mod != null)
                    {
                        hashCode += mod.GetHashCode();
                    }
                }
            }
            return(hashCode);
        }
예제 #3
0
        public override bool Equals(Type o)
        {
            if (!UnderlyingSystemType.Equals(o))
            {
                return(false);
            }
            ModifiedType modt = o as ModifiedType;

            if (modt == null)
            {
                return(Modifiers.Count == 0);
            }

            foreach (CustomTypeModifier modifier in Modifiers)
            {
                if (!modt.Modifiers.HasModifier(modifier))
                {
                    return(false);
                }
            }
            return(true);
        }
예제 #4
0
 public override PropertyInfo[] GetProperties(BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetProperties(bindingAttr));
 }
예제 #5
0
 protected override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
 {
     //TODO:Full implementation needed
     return(UnderlyingSystemType.GetProperty(name));
 }
예제 #6
0
 public override Type GetElementType()
 {
     return(UnderlyingSystemType.GetElementType());
 }
예제 #7
0
 public override Type GetNestedType(string name, BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetNestedType(name, bindingAttr));
 }
예제 #8
0
 public override object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters)
 {
     return(UnderlyingSystemType.InvokeMember(name, invokeAttr, binder, target, args, modifiers, culture, namedParameters));
 }
예제 #9
0
 public override FieldInfo[] GetFields(BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetFields(bindingAttr));
 }
예제 #10
0
 public override Type[] GetInterfaces()
 {
     return(UnderlyingSystemType.GetInterfaces());
 }
예제 #11
0
 public override Type GetInterface(string name, bool ignoreCase)
 {
     return(UnderlyingSystemType.GetInterface(name, ignoreCase));
 }
예제 #12
0
 public override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetConstructors(bindingAttr));
 }
예제 #13
0
 public override bool IsDefined(Type attributeType, bool inherit)
 {
     return(UnderlyingSystemType.IsDefined(attributeType, inherit));
 }
예제 #14
0
파일: support.cs 프로젝트: mdae/MonoRT
 public override string ToString()
 {
     return(UnderlyingSystemType.ToString());
 }
예제 #15
0
 protected override MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)
 {
     return(UnderlyingSystemType.GetMethod(name, bindingAttr, binder, callConvention, types, modifiers));
 }
예제 #16
0
 public override FieldInfo GetField(string name, BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetField(name, bindingAttr));
 }
예제 #17
0
 public override EventInfo GetEvent(string name, BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetEvent(name, bindingAttr));
 }
예제 #18
0
 public override MemberInfo[] GetMembers(BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetMembers(bindingAttr));
 }
예제 #19
0
 public override EventInfo[] GetEvents(BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetEvents(bindingAttr));
 }
예제 #20
0
 public override object[] GetCustomAttributes(Type attributeType, bool inherit)
 {
     return(UnderlyingSystemType.GetCustomAttributes(attributeType, inherit));
 }
예제 #21
0
 public override Type[] GetNestedTypes(BindingFlags bindingAttr)
 {
     return(UnderlyingSystemType.GetNestedTypes(bindingAttr));
 }