Ejemplo n.º 1
0
 public TypeSignature(Type t)
 {
     Type = t;
     if (t.IsGenericTypeDefinition)
     {
         GenericSignature = new GenericSignature(t.GetGenericArguments());
     }
 }
Ejemplo n.º 2
0
 public MethodSignature(MethodInfo method)
 {
     Method = method;
     if (method.IsGenericMethodDefinition)
     {
         GenericSignature = new GenericSignature(method.GetGenericArguments());
     }
     ParameterSignatures = method.GetParameters().Select(a => new ParameterSignature(a)).ToArray();
 }
Ejemplo n.º 3
0
        public bool CanBeRelaxedTo(MethodSignature other)
        {
            if (!Name.Equals(other.Name, StringComparison.Ordinal))
            {
                return(false);
            }

            if (!AttributesCanBeRelaxedTo(other.Attributes))
            {
                return(false);
            }

            if (IsGeneric != other.IsGeneric)
            {
                return(false);
            }

            if (IsGeneric && GenericSignature.Equals(other.GenericSignature))
            {
                return(false);
            }

            if (!ReturnType.Equals(other.ReturnType))
            {
                return(false);
            }

            if (ParameterSignatures.Length != other.ParameterSignatures.Length)
            {
                return(false);
            }
            for (int i = 0; i < ParameterSignatures.Length; ++i)
            {
                if (!ParameterSignatures[i].Equals(other.ParameterSignatures[i]))
                {
                    return(false);
                }
            }

            return(true);
        }