(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
。
我正在查看 dotnet 运行时中的一些代码,我注意到不是这样写的:
if (args.Length > 0)
他们使用这个:
if (args is { Length: > 0})
你知道用第二种方法代替第一种方法有什么好处吗?看起来比较长,不太好读,但是不知道为什么,用了第二种方法?
如果 args
为 null,则 args.Length > 0
抛出 NullReferenceException。
在同样的情况下,args is { Length: > 0}
简单地计算为 false
。