-
Notifications
You must be signed in to change notification settings - Fork 1
/
ToStringExtensions.cs
104 lines (96 loc) · 5.08 KB
/
ToStringExtensions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
using System.Globalization;
internal static class ToStringExtensions
{
private const int _top = 255;
private const int _topStack = 250;
private static readonly string[] _cache = new string[256]
{
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"20", "21", "22", "23", "24", "25", "26", "27", "28", "29",
"30", "31", "32", "33", "34", "35", "36", "37", "38", "39",
"40", "41", "42", "43", "44", "45", "46", "47", "48", "49",
"50", "51", "52", "53", "54", "55", "56", "57", "58", "59",
"60", "61", "62", "63", "64", "65", "66", "67", "68", "69",
"70", "71", "72", "73", "74", "75", "76", "77", "78", "79",
"80", "81", "82", "83", "84", "85", "86", "87", "88", "89",
"90", "91", "92", "93", "94", "95", "96", "97", "98", "99",
"100", "101", "102", "103", "104", "105", "106", "107", "108", "109",
"110", "111", "112", "113", "114", "115", "116", "117", "118", "119",
"120", "121", "122", "123", "124", "125", "126", "127", "128", "129",
"130", "131", "132", "133", "134", "135", "136", "137", "138", "139",
"140", "141", "142", "143", "144", "145", "146", "147", "148", "149",
"150", "151", "152", "153", "154", "155", "156", "157", "158", "159",
"160", "161", "162", "163", "164", "165", "166", "167", "168", "169",
"170", "171", "172", "173", "174", "175", "176", "177", "178", "179",
"180", "181", "182", "183", "184", "185", "186", "187", "188", "189",
"190", "191", "192", "193", "194", "195", "196", "197", "198", "199",
"200", "201", "202", "203", "204", "205", "206", "207", "208", "209",
"210", "211", "212", "213", "214", "215", "216", "217", "218", "219",
"220", "221", "222", "223", "224", "225", "226", "227", "228", "229",
"230", "231", "232", "233", "234", "235", "236", "237", "238", "239",
"240", "241", "242", "243", "244", "245", "246", "247", "248", "249",
"250", "251", "252", "253", "254", "255"
};
private static readonly string[] _cacheStack = new string[251]
{
null, null, " (2)", " (3)", " (4)", " (5)", " (6)", " (7)", " (8)", " (9)",
" (10)", " (11)", " (12)", " (13)", " (14)", " (15)", " (16)", " (17)", " (18)", " (19)",
" (20)", " (21)", " (22)", " (23)", " (24)", " (25)", " (26)", " (27)", " (28)", " (29)",
" (30)", " (31)", " (32)", " (33)", " (34)", " (35)", " (36)", " (37)", " (38)", " (39)",
" (40)", " (41)", " (42)", " (43)", " (44)", " (45)", " (46)", " (47)", " (48)", " (49)",
" (50)", " (51)", " (52)", " (53)", " (54)", " (55)", " (56)", " (57)", " (58)", " (59)",
" (60)", " (61)", " (62)", " (63)", " (64)", " (65)", " (66)", " (67)", " (68)", " (69)",
" (70)", " (71)", " (72)", " (73)", " (74)", " (75)", " (76)", " (77)", " (78)", " (79)",
" (80)", " (81)", " (82)", " (83)", " (84)", " (85)", " (86)", " (87)", " (88)", " (89)",
" (90)", " (91)", " (92)", " (93)", " (94)", " (95)", " (96)", " (97)", " (98)", " (99)",
" (100)", " (101)", " (102)", " (103)", " (104)", " (105)", " (106)", " (107)", " (108)", " (109)",
" (110)", " (111)", " (112)", " (113)", " (114)", " (115)", " (116)", " (117)", " (118)", " (119)",
" (120)", " (121)", " (122)", " (123)", " (124)", " (125)", " (126)", " (127)", " (128)", " (129)",
" (130)", " (131)", " (132)", " (133)", " (134)", " (135)", " (136)", " (137)", " (138)", " (139)",
" (140)", " (141)", " (142)", " (143)", " (144)", " (145)", " (146)", " (147)", " (148)", " (149)",
" (150)", " (151)", " (152)", " (153)", " (154)", " (155)", " (156)", " (157)", " (158)", " (159)",
" (160)", " (161)", " (162)", " (163)", " (164)", " (165)", " (166)", " (167)", " (168)", " (169)",
" (170)", " (171)", " (172)", " (173)", " (174)", " (175)", " (176)", " (177)", " (178)", " (179)",
" (180)", " (181)", " (182)", " (183)", " (184)", " (185)", " (186)", " (187)", " (188)", " (189)",
" (190)", " (191)", " (192)", " (193)", " (194)", " (195)", " (196)", " (197)", " (198)", " (199)",
" (200)", " (201)", " (202)", " (203)", " (204)", " (205)", " (206)", " (207)", " (208)", " (209)",
" (210)", " (211)", " (212)", " (213)", " (214)", " (215)", " (216)", " (217)", " (218)", " (219)",
" (220)", " (221)", " (222)", " (223)", " (224)", " (225)", " (226)", " (227)", " (228)", " (229)",
" (230)", " (231)", " (232)", " (233)", " (234)", " (235)", " (236)", " (237)", " (238)", " (239)",
" (240)", " (241)", " (242)", " (243)", " (244)", " (245)", " (246)", " (247)", " (248)", " (249)",
" (250)"
};
public static string ToStringLookup(this int value)
{
if (value >= 0 && value <= 255)
{
return _cache[value];
}
return value.ToString(CultureInfo.InvariantCulture);
}
public static string ToStringLookup(this short value)
{
if (value >= 0 && value <= 255)
{
return _cache[value];
}
return value.ToString(CultureInfo.InvariantCulture);
}
public static string ToStackString(this short value)
{
if (value <= 250)
{
return _cacheStack[value];
}
return " (" + value.ToString(CultureInfo.InvariantCulture) + ')';
}
public static string ToStackString(this int value)
{
if (value <= 250)
{
return _cacheStack[value];
}
return " (" + value.ToString(CultureInfo.InvariantCulture) + ')';
}
}