我正在查看.NET运行时中的一些代码,注意到他们使用以下方式而不是:
if (args.Length > 0)
他们使用了这个:
if (args is { Length: > 0})
您知道使用第二种方法是否有任何优势吗?第二种方法似乎更长更难阅读,但出于某种原因,使用了它?
args
为null,则args.Length > 0
会抛出NullReferenceException异常。args is { Length: > 0}
只会计算为false
。args?.Length > 0
。 - DenisSarrazinargs is { Length: > 0}
更易读,或者允许添加比仅仅 Length > 0 更多的条件。 - Orion
{ Length: ... }
和C#9的关系模式>0
的组合。 - pinkfloydx33