!=null与!string.IsNullOrEmpty()的区别

yuanrong 2010-08-28 06:10:24
userform.InnerText = "欢迎" + ((Session["UserName"] != null) ? Session["UserName"].ToString() : "您") + "!";



userform.InnerText = "欢迎" + (!string.IsNullOrEmpty(Session["UserName"].ToString()) ? Session["UserName"].ToString() : "您") + "!";

请问以上两句代码输出结果有什么不一样吗?
实际运行时,第一句有正确结果,第二句不是提示未将对象引用到实例就是没有任何显示。

请教各位。
...全文
704 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
脾气不坏 2010-08-29
  • 打赏
  • 举报
回复
首先 NULL 和""是不一样的 NULL在内存不分配空间
而 ""在内存分配值为empty的的空间
所以!=NULL 和!IsNullOrEmpty()是不一样的
yuanrong 2010-08-29
  • 打赏
  • 举报
回复
yumenjianke正解。谢谢各位的解答,学习了。结帖。
微工程 2010-08-29
  • 打赏
  • 举报
回复
try
catch
null 不一定能行
NocturneLLJ 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 q107770540 的回复:]
userform.InnerText = "欢迎" + (!string.IsNullOrEmpty(Session["UserName"].ToString()) ? Session["UserName"].ToString() : "您") + "!";

=======
userform.InnerText = "欢迎" + (!string.IsNullOrEmpty(Sessio……
[/Quote]
哈哈.sp1234的意思我能理解.
就好比读取配置文件AppSetting[...]
原形出来的已经是String类型.再用ToString()就是画蛇添足
零点逸族 2010-08-29
  • 打赏
  • 举报
回复
其实楼主的问题关键不是在!=null和String.IsNullOrEmpty,
关键的问题在null值没有ToString方法,
建议在这种情况下用
Convert.ToString(Session["UserName"])这种方式。
把第二句改成这种方式就和第一句的结果一样了。
  • 打赏
  • 举报
回复
userform.InnerText = "欢迎" + ((Session["UserName"] != null) ? Session["UserName"].ToString() : "您") + "!";

这个代码我很不喜欢(当然你可以以为我只是变态),应该写为:

userform.InnerText = "欢迎" + ((Session["UserName"] != null) ? (string)Session["UserName"] : "您") + "!";

见过太多的滥用 ToString 的人,所以产生了这个变态感觉。
q107770540 2010-08-28
  • 打赏
  • 举报
回复
userform.InnerText = "欢迎" + (!string.IsNullOrEmpty(Session["UserName"].ToString()) ? Session["UserName"].ToString() : "您") + "!";

=======
userform.InnerText = "欢迎" + (!string.IsNullOrEmpty(Session["UserName"]) ? Session["UserName"].ToString() : "您") + "!";



string.IsNullOrEmpty() 等价于!=null &&!=""
TohkinZhu 2010-08-28
  • 打赏
  • 举报
回复
string.IsNullOrEmpty 同时检测空和NULL两种状态
Session["UserName"] 如果为null,是不能ToString()的,所以会报错
njlywy 2010-08-28
  • 打赏
  • 举报
回复
IsNullOrEmpty 是一种简便方法,它使您能够同时测试 String 是否为 null 或其值是否为 Empty

null只是null
wuyq11 2010-08-28
  • 打赏
  • 举报
回复
IsNullOrEmpty 是一种简便方法,它使您能够同时测试 String 是否为 null 或其值是否为 Empty
null只是null
Session["UserName"]==?"":Session["UserName"].ToString
孟子E章 2010-08-28
  • 打赏
  • 举报
回复
Session["UserName"].ToString()是错误的。null没有.ToString()方法
Peter200694013 2010-08-28
  • 打赏
  • 举报
回复
!= null 就是不为null
!string.IsNullOrEmpty 不是null且不是""(string.Empty)
孟子E章 2010-08-28
  • 打赏
  • 举报
回复
IsNullOrEmpty包含null和空白String.Empty
null只包含null啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧