コード例 #1
0
 public void TestIsNullOrEmptyNotEmpty()
 {
     IEnumerable nullEnumerable = new[] { new object() };
     IEnumerable<object> nullEnumerableT = new List<object> { new object(), new object() };
     Assert.IsFalse(nullEnumerable.IsNullOrEmpty());
     Assert.IsFalse(nullEnumerableT.IsNullOrEmpty());
 }
コード例 #2
0
        public static MethodGroup LookupUserDefinedImplicitCasts(this Type src, Type dest)
        {
            Func<Type, Type, bool> encompasses = (t1, t2) => t2.HasPredefinedImplicitCastTo(t1);
            Func<Type, Type, bool> isEncompassedBy = (t1, t2) => t1.HasPredefinedImplicitCastTo(t2);

            var alternatives = new[] {src, dest}.Select(type =>
                type.UndecorateNullable().LookupThisAndBaseTypes().Select(bt => bt
                    .GetMethods(BF.PublicStatic)
                    .Where(mi => mi.DeclaringType == bt)
                    .Where(mi => mi.IsUserDefinedImplicitCast())
                    .Where(mi => isEncompassedBy(mi.CastDestination(), dest.UndecorateNullable()))
                    .Where(mi => encompasses(mi.CastSource(), src.UndecorateNullable()))))
                .Flatten().Flatten();
            alternatives = alternatives.Concat(alternatives.LiftSignatures());

            return alternatives.IsNullOrEmpty() ? null : new MethodGroup(alternatives, "<cast>");
        }