C#6.0刚刚发布,并且有一个新的不错的小功能,我真的很想在JavaScript中使用它.他们被称为Null条件运算符.这些使用?.或?[]语法.
这些操作基本上允许您null在尝试访问属性之前检查您获得的对象.如果对象是null,那么您将获得null属性访问的结果.
int? length = customers?.Length;
Run Code Online (Sandbox Code Playgroud)
所以这里int可以为null,并且如果customers为null 则将采用该值.更好的是你可以链接这些:
int? length = customers?.orders?.Length;
Run Code Online (Sandbox Code Playgroud)
我不相信我们可以用JavaScript做到这一点,但我想知道做类似事情的最好方法是什么.通常我发现链接if块难以阅读:
var length = null;
if(customers && customers.orders) {
length = customers.orders.length;
}
Run Code Online (Sandbox Code Playgroud) 在开源项目中玩游戏时,我对ToString一个DateTime对象的尝试被编译器阻止了.当我跳到定义时,我看到了这个:
public DateTime? timestamp;
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我这是什么以及为什么它可能有用?
我见过类似以下不相关的代码:
Console.Write(myObject?.ToString());
return isTrue ? "Valid" : "Lie";
return myObject ?? yourObject;
int? universalAnswer = 42;
Run Code Online (Sandbox Code Playgroud)
问号的所有用法是相关的还是不同的?他们每个人的意思是什么?
我正在尝试使用Null条件运算符(?),但我不确定究竟应该放在哪里separators.Contains(textLine[(index - 1)]).我想说"If (textLine[(index - 1)])is not null proceed".一些帮助?