(args is { Length: > 0}) 和 args.Length 之间的区别?

Difference between (args is { Length: > 0}) and args.Length?

我正在查看 dotnet 运行时中的一些代码,我注意到不是这样写的:

if (args.Length > 0)

他们使用这个:

if (args is { Length: > 0})

你知道用第二种方法代替第一种方法有什么好处吗?看起来比较长,不太好读,但是不知道为什么,用了第二种方法?

如果 args 为 null,则 args.Length > 0 抛出 NullReferenceException。

在同样的情况下,args is { Length: > 0} 简单地计算为 false