String extension – IsNullOrEmpty – ToEnum (Enum.Parse)

24 בספטמבר 2009

3 תגובות

 


אני משתמש די בקביעות עם שני 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>();


 

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

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

3 תגובות

  1. חיים26 בספטמבר 2009 ב 22:57

    לא הבנתי מה הרווח בIsNullOrEmpty.

    בהזדמנות זו, אודה לך על הפוסטים היפים שלך, על ההרצאה בIDCC (האזנתי חלקית באינטרנט).
    ובעיקר לאחל לך גמר חתימה טובה, שנה טובה וצום קל.

    הגב
  2. יוסי גולדברג22 בנובמבר 2009 ב 11:48

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

    הגב
  3. Shlomo23 בנובמבר 2009 ב 9:24

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

    הגב