Question: I was wondering what was the most clean and understandable syntax for doing condition checks on nullable bools. 

Is the following good or bad coding style? Is there a way to express the condition better/more cleanly?

```
bool? nullableBool = true;
if (nullableBool ?? false) { ... }
else { ... }

```

especially the **if (nullableBool ?? false)** part. I don't like the `if (x.HasValue && x.Value)` style ...

*(not sure whether the question has been asked before ... couldn't find something similar with the search)*

Answer: 
You may not like it, but personally I find

```
if (x.HasValue && x.Value)

```

the most readable. It makes it clear you are working with a nullable type and it makes it clear you are first checking whether the nullable type has a value before acting on it conditionally.

If you take your version and replace the variable with x also it reads:

```
if (x ?? false)

```

Is that as clear? Is it obvious x is a nullable type? I'll let you decide.
I think its up to you. I certainly think the .HasValue approach is more readable, especially with developers not familiar with the ?? syntax.

The other point of a nullable boolean type is that it is tristate, so you may want to do something else when it is just null, and not default to false.