我很好奇是否有任何开发人员使用string.IsNullOrEmpty()更多地使用负数而不是正数
例如
if (!string.IsNullOrEmpty())
Run Code Online (Sandbox Code Playgroud)
这就是我99%的时间使用这种方法的方法.对此有何设计决定?
Meh*_*ari 36
在命名内容时通常不鼓励双重否定.!string.NotNullOrEmpty(...)会做一个.
tva*_*son 12
对于那些逻辑学家来说,!string.IsNullOrEmpty不等同于string.IsNotNullOrEmpty.@Guffa说得对.使用DeMorgan定律,它必须是string.IsNotNullAndNotEmpty才是等价的.
¬(null∨empty)⇔¬null∧¬empty
¬(null∨空)≠¬null∨空
我想,这里的观点是它目前的方式是明确的,因为相反的明确是明显的麻烦.
C#命名约定规定你的表达式应该是正面的,例如"Is ..."而不是"IsNot ......"
编辑:通常,我在方法开始时进行错误检查和输入验证时使用它,如果参数为null或为空则引发异常.
if (string.IsNullOrEmpty(myParameter))
{
throw new ....
}
正如旁注,我更喜欢扩展方法:
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string value)
{
return string.IsNullOrEmpty(value);
}
}
Run Code Online (Sandbox Code Playgroud)
我发现说起来更好:
if(myValue.IsNullOrEmpty())
Run Code Online (Sandbox Code Playgroud)
要么
if(!myValue.IsNullOrEmpty())
Run Code Online (Sandbox Code Playgroud)
小智 5
我总是为"HasContent()"创建一个扩展方法,它通常是有意义的,遵循"正面"规范,并节省代码膨胀,因为我使用它比它的对应物更频繁:
public static bool HasContent(this string s) {
return !string.IsNullOrEmpty(s);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48763 次 |
| 最近记录: |