a chain of member or element access
Assignment is not member access nor element access, hence not part of the chain.
A community about the C# programming language
Getting started
Useful resources
IDEs and code editors
Tools
Rules
Related communities
a chain of member or element access
Assignment is not member access nor element access, hence not part of the chain.
Bummer, thought that might be the case, but was wishing it wasn't because it seemed quite nice to avoid the ifs there as well.
What is the precise expected behavior here? If HttpContext.Current?.Response.ContentType is not null, then assign it to "text/json", otherwise explode? I would intuitively evaluate the latter case as trying to assign null = "text/json"
which doesn't make sense to me.
What is the precise expected behavior here?
Oh just because the docs said "The null-conditional operators are short-circuiting" and "the rest of the chain doesn’t execute" I wondered, if the object is null, it would just skip executing the assignment completely. Didn't have high hopes, but thought I'd ask just in case, as it would be kinda handy as well. Probably pretty rarely though.
What it does essentially is a null check and jump after each member.
So what you would end up with is null = ... As the result of the expression (chain) is what is being assigned to. The assignment is an expression its self that takes two expressions. One to be assigned to and the value to assign.
Which obviously is always going to be an error.
When there is ambiguity in the behavior of something like this, it’s usually easier to just construct a unit test and see what happens.
Make a class with some deeply nested members and then do an assignment.
See what happens.