public static class ClassExtensions
{
public static TResult GetProperty<TClass, TResult>(this TClass obj, Func<TClass, TResult> func) where TClass : class
{
if ((object) obj == null)
return default (TResult);
else
return func(obj);
}
public static TResult GetProperty<TKey, TResult>(this IDictionary<TKey, TResult> dict, TKey key)
{
if (dict == null || !dict.ContainsKey(key))
return default (TResult);
else
return dict[key];
}
public static TResult GetProperty<TKey, TValue, TResult>(this IDictionary<TKey, TValue> dict, TKey key, Func<TValue, TResult> func)
{
if (dict == null || !dict.ContainsKey(key))
return default (TResult);
TValue obj = dict[key];
return func(obj);
}