public void ReflectionNumericTest() { Func <MemberInfo, bool> filter = member => member.MemberType == MemberTypes.TypeInfo || member.MemberType == MemberTypes.Field || member.MemberType == MemberTypes.Property; var t = typeof(NormalValueTypeClass); var m0 = (MemberInfo)t; var allMembers = t.GetMembers().Where(filter).ToList(); allMembers.ShouldNotBeNull(); allMembers.ShouldNotBeEmpty(); var m1 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int16V1)); var m2 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int16V2)); var m3 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int16V3)); var m4 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Int16V4)); var m5 = allMembers.Single(x => x.Name == nameof(NormalValueTypeClass.Str)); m1.MemberType.ShouldBe(MemberTypes.Property); m2.MemberType.ShouldBe(MemberTypes.Field); m3.MemberType.ShouldBe(MemberTypes.Property); m4.MemberType.ShouldBe(MemberTypes.Field); m5.MemberType.ShouldBe(MemberTypes.Property); TypeReflections.IsNumeric(m0).ShouldBeFalse(); TypeReflections.IsNumeric(m1).ShouldBeTrue(); TypeReflections.IsNumeric(m2).ShouldBeTrue(); TypeReflections.IsNumeric(m3).ShouldBeFalse(); TypeReflections.IsNumeric(m4).ShouldBeFalse(); TypeReflections.IsNumeric(m3, TypeIsOptions.IgnoreNullable).ShouldBeTrue(); TypeReflections.IsNumeric(m4, TypeIsOptions.IgnoreNullable).ShouldBeTrue(); TypeReflections.IsNumeric(m5).ShouldBeFalse(); }