Tag: isnullorempty

C#String.IsNullOrEmpty:好还是坏?

在工作中我误用String.IsNullOrEmpty和Session变量的事件后,我的同事现在拒绝接受我对String.IsNullOrEmpty的使用。 经过一些研究,显然在MSDN( 链接 )上列出了IsNullOrEmpty的错误(在底部阅读注释): 截至2006年4月4日,有一个错误(可能在JIT中)使得此方法在启用优化时失败。 众所周知,它会同时影响C#和VB。 更多信息可以在这里找到( 链接 )。 微软的这个漏洞在Orcas后被“推测”固定,但不幸的是我的雇主仍在使用VS2005。 但如果问题在2008年修复,那么就这样吧。 那对我来说没问题。 虽然我的同事拒绝我的IsNullOrEmpty我的代码是盲目的无知(IMO),他当然不能告诉我为什么不使用它而不是滥用会话变量。 我在代码中使用了IsNullOrEmpty,没有任何问题。 就个人而言,除了在一个语句中做两件事之外,我发现它更具可读性。 在谷歌上搜索关于这个主题的意见后,我发现网站采取了优点/立场。 以下是我读过的一些网站: https://blog.rthand.com/post/2006/06/22/1063.aspx Is String.IsNullOrEmpty Hazardous to your Code's health in .Net 2.0/3.0? 一个站点( http://dotnetperls.com/isnullorempty )很好地总结了方法(恕我直言): 在这里,我们查看了字符串类型的IsNullOrEmpty方法,它为我们提供了一种检查字符串是否可以保存或使用的良好且相对有效的方法。 但是,为了提高性能,最好使用手动空检查。 空字符串也可以通过其他方式进行测试,我的研究表明检查长度最快。 假设在VS2008 / 2010 /等中修复了错误(并且正常工作),是否有任何理由不在 VS2005及更高版本中使用String.IsNullOrEmpty? 我意识到这对于这种愚蠢的小方法看起来有点过分,但我想知道是否有更多的幕后工作,如果有人有其他解释。

如果没有针对每个文本框的唯一测试,如何为null或为空,我如何检查多个文本框?

我在表单上有大约20个文本字段,用户可以填写。 我想提示用户在任何文本框中输入任何内容时都要考虑保存。 现在,对它的测试真的很长而且很混乱: if(string.IsNullOrEmpty(txtbxAfterPic.Text) || string.IsNullOrEmpty(txtbxBeforePic.Text) || string.IsNullOrEmpty(splitContainer1.Panel2) ||…//many more tests 有没有办法可以使用像任何数组的数组,其中数组由文本框组成,我检查它? 还有哪些方法可以非常方便地查看自程序启动以来是否有任何更改? 我应该提到的另一件事是有一个日期时间选择器。 我不知道我是否需要测试它,因为datetimepicker永远不会为null或为空。 编辑:我将答案纳入我的程序,但我似乎无法使其正常工作。 我按如下所示设置测试并继续触发Application.Exit()调用。 //it starts out saying everything is empty bool allfieldsempty = true; foreach(Control c in this.Controls) { //checks if its a textbox, and if it is, is it null or empty if(this.Controls.OfType().Any(t => string.IsNullOrEmpty(t.Text))) { //this means soemthing was […]