Exemplo n.º 1
0
 private ConstructorInfoCache(Type type)
 {
     Constructors  = type.AllConstructors();
     _constructors = new Dictionary <Type[], ConstructorInfo>(EqualityComparerEx.Array <Type>());
     foreach (var constructorInfo in Constructors)
     {
         _constructors[constructorInfo.GetParameters().Select(x => x.ParameterType).ToArray()] = constructorInfo;
     }
 }
Exemplo n.º 2
0
        public void CompareIntsUsingSignComparer()
        {
            var array1    = new[] { 1, 2, 3 };
            var array2    = new[] { 2, 3, 5 };
            var array3    = new[] { 1, 3, -3 };
            var array4    = new[] { 1, 2, 3, 4 };
            var comparer  = EqualityComparerEx.Array(EqualityComparerEx.Func <int>((x, y) => Math.Sign(x) == Math.Sign(y), Math.Sign));
            var hashCode1 = comparer.GetHashCode(array1);
            var hashCode2 = comparer.GetHashCode(array2);
            var hashCode3 = comparer.GetHashCode(array3);
            var hashCode4 = comparer.GetHashCode(array4);

            Assert.Equal(hashCode1, hashCode2);
            Assert.NotEqual(hashCode1, hashCode3);
            Assert.NotEqual(hashCode1, hashCode4);
            Assert.True(comparer.Equals(array1, array1));
            Assert.True(comparer.Equals(array1, array2));
            Assert.False(comparer.Equals(array1, array3));
            Assert.False(comparer.Equals(array1, array4));
        }
 private static IEqualityComparer <byte[]> GetArrayComparer()
 {
     return(EqualityComparerEx.Array <byte>());
 }
Exemplo n.º 4
0
 private static IEqualityComparer <T[]> GetArrayComparer <T>()
 {
     return(EqualityComparerEx.Array <T>());
 }