315. IsNumeric

לפעמים עולה לנו הצורך לבדוק עבור Type מסוים האם הוא מייצג ערך מספרי או לא של הFramework או לא.

יכולות להיות לכך כמה סיבות – למשל, אנחנו רוצים לבדוק האם לאפשר לטיפוס מסוים וואלידאציה ברמת הטווח (כלומר – לאפשר לבדוק שערך של טיפוס מסוים הוא בטווח מסוים, למשל בין לבדוק שהמספר חיובי וקטן מ10)

למרבה הצער, אין פונקציה שבודקת דבר כזה ברמת הFramework, אבל קל לכתוב כזאת בעזרת אותו TypeCode הכרנו בפעם הקודמת.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static bool IsNumeric(this Type type)
{
TypeCode code = Type.GetTypeCode(type);
if (code == TypeCode.Byte ||
code == TypeCode.Decimal ||
code == TypeCode.Double ||
code == TypeCode.Int16 ||
code == TypeCode.Int32 ||
code == TypeCode.Int64 ||
code == TypeCode.SByte ||
code == TypeCode.Single ||
code == TypeCode.UInt16 ||
code == TypeCode.UInt32 ||
code == TypeCode.UInt64)
{
return true;
}
return false;
}

לא הכי יפה, אבל משיג את המטרה…

המשך יום נומרי טוב.

שתף