Пример #1
0
 void AddExternalType(IReturnType rt, List <ClassNameTypeCountPair> externalTypes, int classCount)
 {
     if (rt.IsDefaultReturnType)
     {
         ClassNameTypeCountPair pair = new ClassNameTypeCountPair(rt);
         if (!classIndices.ContainsKey(pair))
         {
             classIndices.Add(pair, externalTypes.Count + classCount);
             externalTypes.Add(pair);
         }
     }
     else if (rt.IsGenericReturnType)
     {
         // ignore
     }
     else if (rt.IsArrayReturnType)
     {
         AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount);
     }
     else if (rt.IsConstructedReturnType)
     {
         AddExternalType(rt.CastToConstructedReturnType().UnboundType, externalTypes, classCount);
         foreach (IReturnType typeArgument in rt.CastToConstructedReturnType().TypeArguments)
         {
             AddExternalType(typeArgument, externalTypes, classCount);
         }
     }
     else
     {
         LoggingService.Warn("Unknown return type: " + rt.ToString());
     }
 }
Пример #2
0
            public override bool Equals(object obj)
            {
                if (!(obj is ClassNameTypeCountPair))
                {
                    return(false);
                }
                ClassNameTypeCountPair myClassNameTypeCountPair = (ClassNameTypeCountPair)obj;

                if (ClassName != myClassNameTypeCountPair.ClassName)
                {
                    return(false);
                }
                if (TypeParameterCount != myClassNameTypeCountPair.TypeParameterCount)
                {
                    return(false);
                }
                return(true);
            }
Пример #3
0
            public override bool Equals(object obj)
            {
                if (!(obj is ClassNameTypeCountPair))
                {
                    return(false);
                }
                ClassNameTypeCountPair myClassNameTypeCountPair = (ClassNameTypeCountPair)obj;

                if (!ClassName.Equals(myClassNameTypeCountPair.ClassName, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(false);
                }
                if (TypeParameterCount != myClassNameTypeCountPair.TypeParameterCount)
                {
                    return(false);
                }
                return(true);
            }
			void AddExternalType(IReturnType rt, List<ClassNameTypeCountPair> externalTypes, int classCount)
			{
				if (rt.IsDefaultReturnType) {
					ClassNameTypeCountPair pair = new ClassNameTypeCountPair(rt);
					if (!classIndices.ContainsKey(pair)) {
						classIndices.Add(pair, externalTypes.Count + classCount);
						externalTypes.Add(pair);
					}
				} else if (rt.IsGenericReturnType) {
					// ignore
				} else if (rt.IsArrayReturnType) {
					AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount);
				} else if (rt.IsConstructedReturnType) {
					AddExternalType(rt.CastToConstructedReturnType().UnboundType, externalTypes, classCount);
					foreach (IReturnType typeArgument in rt.CastToConstructedReturnType().TypeArguments) {
						AddExternalType(typeArgument, externalTypes, classCount);
					}
				} else if (rt.IsDecoratingReturnType<PointerReturnType>()) {
					AddExternalType(rt.CastToDecoratingReturnType<PointerReturnType>().BaseType, externalTypes, classCount);
				} else {
					LoggingService.Warn("Unknown return type: " + rt.ToString());
				}
			}