Lazy

2 ביולי 2013

תגיות: , ,
תגובה אחת

קוד נפוץ יחסית הוא קוד בסגנון הבא:

Code Snippet
private string someValueFromConfig;

public string SomeValueFromConfig
{
    get
    {
        if (someValueFromConfig == null)
        {
            someValueFromConfig = ReadValueFromConfig();
        }

        return someValueFromConfig;
    }
}

הקוד מוודא שרק פעם אחת מבצעים את הקריאה מהקונפיג (כמובן שזה יכול להיות יצירה של אובייקט (סינגלטון) וכד’)

ואז צריך לחשוב האם הקוד הוא thread safe וכו’

 

אחד התחליפים הנחמדים לנושא זהו Lazy, והקוד יראה כך:

Code Snippet
private Lazy<string> someValueFromConfig = new Lazy<string>(() => ReadValueFromConfig());

public string SomeValueFromConfig
{
    get
    {
        return someValueFromConfig.Value;
    }
}

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

כתיבת תגובה

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

תגובה אחת