DCSIMG
String extension - IsNullOrEmpty - ToEnum (Enum.Parse) - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

String extension - IsNullOrEmpty - ToEnum (Enum.Parse)

 

אני משתמש די בקביעות עם שני extensions ל - string, וחשבתי לשתף אותם.
 
הראשון: בדיקה האם מחרוזת אינה null או ריקה בדרך כלל מתבצעת בצורה הבאה

string str;

if (!string.IsNullOrEmpty(str))

{

}

 
היה הרבה יותר נחמד לולא היינו יכולים לשאול על ה - str - אבל מה לעשות שאולי ה - str הינו null (וזה שאלה מכשילה).
 
השני: המרה ממחרוזת ל - enum מתבצעת בדרך כלל ככה:
 

enum NyEnum

{

    One,

    Two

}

NyEnum data = (NyEnum)Enum.Parse(typeof(NyEnum), "One");

 
 
ולכן כתבתי את המחלקה הבאה:
 

namespace System

{

    public static class StringExtension

    {

        public static bool IsNullOrEmpty(this string value)

        {

            return string.IsNullOrEmpty(value);

        }

 

        public static T ToEnum<T>(this string value)  where T : struct

        {

            return (T)Enum.Parse(typeof(T), value);

        }

    }

}

 
הסיבה שבחרתי להשתמש ב - namespace של System - היא כדי שבכל האפליקציה שלי יהיה לי את התוספת ל - string ללא צורך לעשות using מיוחד בכל קובץ.
 
כעת לבדוק האם יש ערך במחרוזת יראה כך:
 

string str;

if (!str.IsNullOrEmpty())

{

}

 
ולהמיר ל - enum יראה כך:
 

MyEnum data = "One".ToEnum<MyEnum>();

 
והקוד שלנו יהיה הרבה יותר קריא.

תוכן התגובה

יוסי גולדברג כתב/ה:

יפה. רק שאני אבין, הטריק הוא שאפשר לגשת למתודה סטטית של אובייקט שהוא null?

# November 22, 2009 11:48 AM

Shlomo כתב/ה:

הטריק הוא שאפשר לשאול על המופע אפילו שהוא יכול להיות NULL - וכך הקוד הוא יותר קריא

# November 23, 2009 9:24 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 3 and 5 and type the answer here:


Enter the numbers above: