此模式匹配表达式等于不是null

问题描述 投票:2回答:2

我在github上偶然发现this code

if (requestHeaders is {})

而且我不明白它到底能做什么。

根据实验,这似乎仅在requestHeaders为null时为假。

这只是写if (requestHeaders != null)if (!(requestHeaders is null))的另一种方式吗?

c# syntax
2个回答
0
投票

C#中的模式匹配支持属性模式匹配。例如

if (requestHeaders  is HttpRequestHeader {X is 3, Y is var y})

属性模式的语义是它首先测试输入是否为非null。因此它允许您编写:

if (requestHeaders is {})

-4
投票

您应该能够像下面这样。。

Input : str  = null         // initialize by null value
        String.IsNullOrEmpty(str)
Output: True

Input : str  = String.Empty  // initialize by empty value
        String.IsNullOrEmpty(str)
Output: True

因此,基于True,您可以获得结果。

© www.soinside.com 2019 - 2024. All rights reserved.