this post was submitted on 26 Jun 2023
9 points (100.0% liked)
C Sharp
1529 readers
1 users here now
A community about the C# programming language
Getting started
Useful resources
- C# documentation
- C# Language Reference
- C# Programming Guide
- C# Coding Conventions
- .NET Framework Reference Source Code
IDEs and code editors
- Visual Studio (Windows/Mac)
- Rider (Windows/Mac/Linux)
- Visual Studio Code (Windows/Mac/Linux)
Tools
Rules
- Rule 1: Follow Lemmy rules
- Rule 2: Be excellent to each other, no hostility towards users for any reason
- Rule 3: No spam of tools/companies/advertisements
Related communities
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.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.
I can see how you could think of the setter like
Current?.Response.set_ContentType("text/json")
and then ifCurrent
is null you just skip the assignment like you would any other method call.Yeah, for properties but not instance fields.