asp.net 主属性字符串,如果字符串为空,如何签入内容页面
本文关键字:字符串 何签入 net 主属性 如果 asp | 更新日期: 2023-09-27 18:35:49
如果我有一个主属性字符串,例如:
public String SharedInfo
{
get { return (String)Session["SharedInfo"]; }
set { Session["SharedInfo"] = value; }
}
和内容页面中的标签,我通过以下方式检查字符串是否为空:if(Master.SharedInfo == null)
现在我的问题是:为什么if(Master.SharedInfo == ")不起作用,因为SharedInfo是一个字符串,对吗?
有一个方便的方法可以"捕获"两者
if (String.IsNullOrEmpty(Master.SharedInfo)) {
...
}
null
和""
是不平等的。 null
表示根本没有字符串。 ""
是一串长度0
。
string s = null;
int i = s.Length; // <-- Throws null reference exception
但
string s = "";
int i = s.Length; // OK, i => 0
""
和String.Empty
是等效的。有些人说你应该总是使用String.Empty
而不是""
,但这真的没有区别。
更新
相等的字符串常量由编译器暂留,即编译器只存储一次相等的常量。你可以做一个简单的测试(回应@BobTodd的评论),
string s = "";
Console.WriteLine(Object.ReferenceEquals(s, "")); // --> true
Console.WriteLine(Object.ReferenceEquals(s, String.Empty)); // --> true
为了完整起见(根据@JoelEtherton的评论)。从 .NET Framework 4.0 开始,您可以测试
if (String.IsNullOrWhitespace(Master.SharedInfo)) {
...
}
这也将捕获像" "
或"'t"
这样的字符串。
在 c# 中,空字符串""
不为空。这是一个实际的字符串,长度等于零。
您可以使用 string.IsNullOrEmpty(string stringToTest)
检查空字符串和空字符串。
String.Empty
(")和null
完全不同
这完全取决于写入会话的内容["共享信息"]。
如果没有,那么它将为 null,否则它是写入的值,可以是空字符串或 null。
确保使用String.IsNullOrEmpty(string @string)