最短的空检查在C#
有没有更简单的方式来写在C#中 :
if(myobject!=null){
}
在JavaScript中,我们可以这样做:
if(myobject){
}
免责声明:我知道这将在JavaScript中匹配'true'。 这只会用于应该是特定类型对象的变量。
我发现了一些类似的问题,但他们要求稍微不同的事情:
C#最短路如果没有,则检查空值并指定另一个值
检查对象是否为空的最佳和最快的方法
如何确定变量是'undefined'还是'null'?
您可以通过运算符在C#中获得相同的语法:
public class MyClass {
...
// True if instance is not null, false otherwise
public static implicit operator Boolean(MyClass value) {
return !Object.ReferenceEquals(null, value);
}
}
....
MyClass myobject = new MyClass();
...
if (myobject) { // <- Same as in JavaScript
...
}
C#的语言理念与JavaScript的理念完全不同。 C#通常会强制你对某些事物更加明确,以防止一些常见的编程错误(我相信这也有助于简化编译器设计和测试)。
如果C#允许将这种隐式转换为布尔型,那么您很可能会遇到像这样的编程错误:
if(myobject = otherObject)
{
...
}
你做了一个任务而不是平等检查。 通常情况下,C#可以防止这种错误(所以虽然德米特里的答案很聪明,但我建议不要这样做)。
用过的 ?? 运算符https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operator
var myobject = notNullValue ?? nullValue;
链接地址: http://www.djcxy.com/p/76363.html