他の誰もが言ったように、string必要はありません?(これは のショートカットですNullable<string>)。すべての参照型 ( classes) は既に nullable であるためです。struct値型 ( s)にのみ適用されます。
それとは別にToString()、セッション値がそうであるかどうかを確認する前に、セッション値を呼び出してはなりませんnull(または を取得できますNullReferenceException)。また、 (正しく実装されていれば)返されないため、 ToString()forの結果をチェックする必要はありません。セッション値が空( ) の場合に戻りますか?nullnullnullstring""
これは、あなたが書くつもりだったものと同じです:
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();
}