예제 #1
0
        public bool Equals(ITypeDescriptor other, HashSet <ITypeDescriptor> stack)
        {
            var o = other as DictionaryTypeDescriptor;

            if (o == null)
            {
                return(false);
            }
            return(_keyDescriptor.Equals(o._keyDescriptor, stack) && _valueDescriptor.Equals(o._valueDescriptor, stack));
        }
예제 #2
0
        public bool Equals(ITypeDescriptor other, HashSet <ITypeDescriptor> stack)
        {
            var o = other as ListTypeDescriptor;

            if (o == null)
            {
                return(false);
            }
            return(_itemDescriptor.Equals(o._itemDescriptor, stack));
        }
예제 #3
0
 public ITypeDescriptor MergeDescriptor(ITypeDescriptor descriptor)
 {
     foreach (var existingTypeDescriptor in _descriptorSet)
     {
         if (descriptor.Equals(existingTypeDescriptor.Key))
         {
             return(existingTypeDescriptor.Key);
         }
     }
     _descriptorSet.GetOrAdd(descriptor, true);
     return(descriptor);
 }
예제 #4
0
 public ITypeDescriptor MergeDescriptor(ITypeDescriptor descriptor)
 {
     foreach (var existingTypeDescriptor in _descriptorSet)
     {
         if (descriptor.Equals(existingTypeDescriptor.Key))
         {
             return existingTypeDescriptor.Key;
         }
     }
     _descriptorSet.GetOrAdd(descriptor, true);
     return descriptor;
 }
예제 #5
0
 public ITypeDescriptor MergeDescriptor(ITypeDescriptor descriptor)
 {
     foreach (var existingTypeDescriptor in _type2DescriptorMap)
     {
         if (descriptor.Equals(existingTypeDescriptor.Value))
         {
             return existingTypeDescriptor.Value;
         }
     }
     return descriptor;
 }