Как и все остальные, string
не нужно ?
(что является сокращением для Nullable<string>
), потому что все ссылочные типы (class
es) уже обнуляются. Это относится только к типу значения (struct
s).
Кроме того, вы не должны вызывать ToString()
для значения сеанса, прежде чем проверять, является ли оно null
(или вы можете получить NullReferenceException
). Кроме того, вам не нужно проверять результат ToString()
для null
, потому что он никогда не должен возвращать null
(если правильно реализовано). И вы уверены, что хотите вернуть null
, если значение сеанса пустое string
(""
)?
Это эквивалентно тому, что вы хотели написать:
public string SessionValue(string key)
{
if (HttpContext.Current.Session[key] == null)
return null;
string result = HttpContext.Current.Session[key].ToString();
return (result == "") ? null : result;
}
Хотя я бы написал это так (верните пустое string
, если это то, что содержит значение сеанса):
public string SessionValue(string key)
{
object value = HttpContext.Current.Session[key];
return (value == null) ? null : value.ToString();
}