Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I stumbled upon this code on github:

if (requestHeaders is {})

and I don't understand what it does exactly.

Upon experimenting it's seems to only be false when requestHeaders is null.

Is this just another way of writing if (requestHeaders != null) or if (!(requestHeaders is null))?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
136 views
Welcome To Ask or Share your Answers For Others

1 Answer

The pattern-matching in C# supports property pattern matching. e.g.

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

The semantics of a property pattern is that it first tests if the input is non-null. so it allows you to write:

if (requestHeaders is {}) // will check if object is not null

You can write the same type checking in any of the following manner that will provide a Not Null Check included:

if (s is object o) ... // o is of type object
if (s is string x) ... // x is of type string
if (s is {} x) ... // x is of type string
if (s is {}) ...

Read more here.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...