1 /*
2 "C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe" /out:IsNumericType.exe IsNumericType.cs && start "IsNumericType.exe" IsNumericType.exe
3 IsNumeric(System.Boolean) -> False
4 IsNumeric(System.String) -> False
5 IsNumeric(System.Char) -> False
6 IsNumeric(System.Byte) -> True
7 IsNumeric(System.Byte[]) -> False
8 IsNumeric(System.DateTime) -> False
9 IsNumeric(System.Int32) -> True
10 IsNumeric(System.Single) -> True
11 IsNumeric(System.Decimal) -> True
12 IsNumeric(System.DayOfWeek) -> True
13 IsNumeric(System.Guid) -> False
14 IsNumeric(System.IntPtr) -> False
15 IsNumeric(System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=ne
16 utral, PublicKeyToken=b77a5c561934e089]]) -> False
17 IsNumeric(System.Action) -> False
18 Press any key to EXIT...
19 */
20 using System;
21 using System.Reflection;
22
23 static class Program {
24 static bool IsNumeric(Type type) {
25 switch (Type.GetTypeCode(type)) {
26 case TypeCode.Byte:
27 case TypeCode.SByte:
28 case TypeCode.UInt16:
29 case TypeCode.UInt32:
30 case TypeCode.UInt64:
31 case TypeCode.Int16:
32 case TypeCode.Int32:
33 case TypeCode.Int64:
34 case TypeCode.Decimal:
35 case TypeCode.Double:
36 case TypeCode.Single:
37 return true;
38 default:
39 return false;
40 }
41 }
42
43 public static void Main() {
44 Test(typeof(bool));
45 Test(typeof(string));
46 Test(typeof(char));
47 Test(typeof(byte));
48 Test(typeof(byte[]));
49 Test(typeof(DateTime));
50 Test(typeof(int));
51 Test(typeof(float));
52 Test(typeof(Decimal));
53 Test(typeof(DayOfWeek));
54 Test(typeof(Guid));
55 Test(typeof(IntPtr));
56 Test(typeof(int?));
57 Test(typeof(Action));
58 Console.Write("Press any key to EXIT...");
59 Console.ReadKey(true);
60 }
61
62 static void Test(Type type) {
63 Console.WriteLine("IsNumeric({0}) -> {1}", type.FullName, IsNumeric(type));
64 }
65
66 }