Ordinarily I like to pontificate on the merits (or detriments) of particular code design decisions. Instead today, I’d like to share a neat consequence of C# 6 that I found the other day.
We’re all familiar with the null-conditional operator ?.
when accessing members (properties/functions). What you may not immediately see is the ability to use the ?
when accessing an object via indexers. Check it out:
var value = myObj?[5];
As you might expect, this line of code returns myObj[5]
when myObj
is not null, or null
if it is.
What I find interesting is that reading the code, it makes sense, but it’s not something that I immediately considered when learning about the ?.
operator.
I guess what’s really happening here is that the real operator isn’t ?.
but merely ?
. After this operator, you can access the data on the object, and it magically checks for null before proceeding with the access!
After writing this, I thought it sounded like I’m a total noob to .Net. I don’t even care. It’s nice that I can still learn basic things.