正如其他人所说的,string
不需要?
(这是Nullable<string>
的快捷键),因为所有的参考类型(class
es)都是可以为空的。它仅适用于值类型(struct
s)。
除此之外,在检查是否为null
(或者您可以获得NullReferenceException
)之前,您不应该在会话值上调用ToString()
。此外,您不必检查ToString()
的结果null
,因为它永远不会返回null
(如果正确实施)。如果会话值为空string
(""
),您确定要返回null
吗?
这相当于你的意思写:
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();
}
“,因为所有的引用类型(类)已经可以为空。“ - >看起来并不如此。 `public class vector {public static vector func(){return null; }}`导致错误。 – Assimilater 2016-07-26 09:47:05