Dav*_*ter 4 javascript c# null
在c#中有没有更短的方法来写这个:
if(myobject!=null){
}
Run Code Online (Sandbox Code Playgroud)
在JavaScript中我们可以这样做:
if(myobject){
}
Run Code Online (Sandbox Code Playgroud)
免责声明:我知道这在JavaScript中也会匹配'true'.这只能用于应该是特定类型对象的变量.
我发现了一些类似的问题,但他们提出的问题略有不同:
Dmi*_*nko 12
您可以通过运算符在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
...
}
Run Code Online (Sandbox Code Playgroud)
C#语言哲学与JavaScript完全不同.C#通常会强迫您更加明确某些事情以防止一些常见的编程错误(我确信这也有助于简化编译器设计和测试).
如果C#允许这样的隐式转换为boolean,那么你更有可能遇到这样的编程错误:
if(myobject = otherObject)
{
...
}
Run Code Online (Sandbox Code Playgroud)
您在哪里进行了分配而不是相等检查.通常C#可以防止这样的错误(所以虽然Dmitry的回答很聪明,但我建议不要这样做).
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |