Просто используйте нуль-объединяющий оператор:
string value = (session["key"] ?? String.Empty).ToString();
Обновление
Если у вас должен быть метод для этого (расширение или иное), я бы сделал что-то вроде:
public static string GetValue(this HttpSessionState session, string key)
{
// TODO: Insert appropriate error checking here.
return (session[key] ?? String.Empty).ToString();
}
Я мог бы даже пойти настолько далеко, чтобы сделать его универсальным для других возможных типов с помощью вызова GetValue
, который принимает селектор и затем использует лямбда-выражения:
public static T GetValue<T>(this HttpSessionState session, string key, Func<object, T> valueSelector)
{
return valueSelector(session[key]);
}
public static string GetStringValue(this HttpSessionState session, string key)
{
return session.GetValue(key, x => (x ?? String.Empty).ToString());
}
Затем вы должны использовать следующее:
string value = session.GetStringValue("key");