有微软的吗?有人说String.IsNullOrEmpty函数有BUG至今未被修复

New佳佳 2019-09-05 10:57:56
有人说String.IsNullOrEmpty有BUG,我不信并且问怎么写才没有bug?

他说用IF写就没有BUG
if xx isnot nothing andalso xx.length <>0


然后我看了下String.IsNullOrEmpty的源码就困惑了,到底有BUG吗?


...全文
2469 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
皮皮熊_1989 2019-09-10
  • 打赏
  • 举报
回复
忘了说了,还有就是一个我们容易混淆的点: string.Empty不分配存储空间, ""分配一个长度为空的存储空间, C#很多地方,两者通用。我个人用string.Empty用的多。
皮皮熊_1989 2019-09-10
  • 打赏
  • 举报
回复
先搞清楚“”和“ ”的区别 string.IsNullOrEmpty("") 结果是true string.IsNullOrEmpty(" ") 结果是false string.IsNullOrEmpty(" ".Trim()) 结果是true,等效于第一个 空字符串和空格字符串是不一样的 IsNullOrEmpty 指的就是null或者空字符串
zhangfan922 2019-09-09
  • 打赏
  • 举报
回复
什么????问题啊,我们
  • 打赏
  • 举报
回复
需要理论么 让提bug的截图啊 没jb说个图
穂城谷主 2019-09-08
  • 打赏
  • 举报
回复
没有接触过,知乎查一下吧
高坚果兄弟 2019-09-08
  • 打赏
  • 举报
回复
这个DY不管换什么语言,都自带bug属性。 另外楼上一堆动不动就先trim的,难道不要根据业务来确定要不要用吗。一篇文章人家好不容易敲几个首尾换行统一风格,就被你trim了😒。用户故意或者非故意的填写用户名首尾敲空格,tirm一下也算合理,如果不允许出现空格,直接果断拒绝也是合理合法的😎
qq_35287088 2019-09-08
  • 打赏
  • 举报
回复
菜鸟前来围观学习
真相重于对错 2019-09-08
  • 打赏
  • 举报
回复
语言是一种工具,库函数也是 所谓的工具肯定不是万能,人从来没有创造出万能的工具,就好比汽车,他不能飞,飞机他不能潜入海底。任何工具作用都是有界限的 工具不是阿里巴巴的神灯。想让他干什么就干什么。 回到楼主的问题。string.isnullempty()这个函数有没有bug,首先要确定什么为bug, 个人以为,所谓程序的bug,应该是,它做不到它所说明的功能,或者是大部分时间能做到,但个别情况下不行。 那么,就应该查一下他的说明书,看看他到底要实现什么功能,做得到或者做不到 以下摘自msdn关于这个函数的说明 String.IsNullOrEmpty(String) Method Definition Namespace: System Assemblies: System.Runtime.dll, mscorlib.dll, netstandard.dll Indicates whether the specified string is null or an empty string (""). 注意,这个函数的功能是判断一个string是否为null或者是empty string("") 我想大家应该明白了吧?
wanghui0380 2019-09-06
  • 打赏
  • 举报
回复
如果他把这叫bug 那微软的bug多了去了,比如null 你干嘛每次都要写 xxx?.xxx 或者xxx??"" 或者 if(xxx!=null) { } 好大一个bug,微软从出生就带的bug,二三十年了,一个null都没搞定。 人家只是提供了一个工具,他只是工具。逻辑自己保证。你觉着工具不好,没问题。自己写个扩展方法,也行啊。没人拦着你 你就觉着刀上不加个滋水枪就是bug,没问题。你把刀上加个滋水枪申请个专利,没问题滴。
wanghui0380 2019-09-06
  • 打赏
  • 举报
回复
没啥证明不证明的,你就回“拉不出屎不能怪别人” 你不trim,说明你逻辑不严谨。就像说你除个0,软件还能崩溃呢?怪微软连个除0都不会? 先洗菜后切菜,养成习惯了,就没问题。 我不怎么做饭,没养成这习惯。家里那位经常问的一句是“菜洗了么”,我回“哦,忘了,没洗,直接切了” so,我能怪菜刀就是bug么?生产菜刀的为啥不在上面接跟水管,我一边切他就一边给我洗了
New佳佳 2019-09-06
  • 打赏
  • 举报
回复
引用 20 楼 娃都会打酱油了的回复:
这是bug?不知道还有个string.IsNullOrWhiteSpace方法吗?应对string.IsNullOrEmpty不足之处
当然知道string.IsNullOrWhiteSpace,不过焦点在他说用if的写法就没有bug我就不认可了,非要让我去问微软来证明bug的存在
足球中国 2019-09-06
  • 打赏
  • 举报
回复
搞笑的嘛???
wanghui0380 2019-09-05
  • 打赏
  • 举报
回复
trim在先,判定在后是正常逻辑

判定在前,trim在后也行。只是你不能忘了

这不是bug,微软可以帮你一起判断比如IsNullOrWhiteSpace,但是你自己也得保证逻辑,真忘了就是挖坑了。

所以,个人习惯不挖坑。trim先。如果挖坑再填你的,你的记得填
wanghui0380 2019-09-05
  • 打赏
  • 举报
回复
他那么写的原因只是他不想trim
就像我有时候不想引入jquery的时候也直接用length
但是问题是这是前端的代码,后端还有一次验证,偷个懒问题不大

我们一直说trim,是说这是应该处理的。你偷个懒,后面还是要处理

比如查找“计算机a”,你like “%计算机a%”和 like “%计算机a %”(这个带空格)一样么

数据基本验证是省不了的,做除法不验证分母为0?数据库里int,你不验证这个是不是数字?

在说一个实际的事情

就半个月前,市场部门需要一份统计数据。数据需要从两个库里统计,结果统计数据有误。市场部大大发了火,捅到上面。上面大大死命令,2小时必须出数据,同时扣做统计开发的绩效,并罚500块。

知道最后查出数据不对原因是什么?就是B系统偷懒没有trim,导致一个关联流水号多了一个空格,数据关联不上
  • 打赏
  • 举报
回复
一个两个说有bug的都没提交过,都是张嘴就来,也没啥好说的,他觉得有就有啊,早换java早走人最好,这样的人和他一起工作我都觉得累。
New佳佳 2019-09-05
  • 打赏
  • 举报
回复
引用 7 楼 stherix的回复:
没听说过有什么bug,更不可能至今未修复 他认为未修复,你让他反映到巨硬那里去不就好了
他说让我去问微软,我就不信有bug所在来论坛问
正怒月神 2019-09-05
  • 打赏
  • 举报
回复
截图里的人没有证明bug的例子,只是嘴巴上说。。。 那我还怀疑是他代码的问题了。
正怒月神 2019-09-05
  • 打赏
  • 举报
回复
我也不信
New佳佳 2019-09-05
  • 打赏
  • 举报
回复
我只关心这个函数是否存在他说的BUG,我是不信的
正怒月神 2019-09-05
  • 打赏
  • 举报
回复
一般来说,有bug,也不会至今未被修复了。
加载更多回复(21)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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