DotNet-101-CSharpFundamentals
  • Introduction
  • Part 0: Solution Setup
    • 1.0: Solution Setup
  • Part 1: Data Types
    • 1.0: Variables
    • 1.1: Data Types
    • 1.2: Data Types Table
    • 1.3: Challenge Answers
    • 1.4: Strings
    • 1.5: String Challenges
    • 1.6: Challenge Answers
    • 1.7: Integers
    • 1.8: Type Conversion
  • Part 2: Boolean Logic And Conditionals
    • 2.0: Boolean Type
    • 2.1: Boolean Logic
    • 2.2: Boolean Challenges
    • 2.3: Challenge Answers
    • 2.4: if, else if, else
    • 2.5: Switch Statements
    • 2.6: Ternary Operators
  • Part 3: Objects, Methods, C# Fundamentals
    • 3.0 Objects
    • 3.1 Properties
      • Challenge Answers
    • 3.2 Methods
      • Challenge Answers
    • 3.3 Method-Overloading
    • 3.4 Constructors
      • Challenge Answers
    • 3.5 Access Modifiers
  • Part 4: Collections Arrays Control Flow
    • 4.0 Arrays
    • 4.1 Loops
    • 4.2 Dictionaries
    • Challenge Answers
    • 4.3 List
    • 4.3a: Challenge Answers
  • Part 5: Inheritance/More On Object Oriented Programming
    • 5.0 Inheritance
    • 5.1 Polymorphism
    • 5.2 Encapsulation
    • 5.3 Getters And Setters
    • 5.4 Exception Handling
  • Part 6: Structs
    • 6.0 Structs
  • Part 7: Enums
    • 7.0 Enums
  • Part 8: Null Coalescing Operator
    • 8.0 Null Coalescing Operator
  • Part 9: Interfaces
    • 9.0 Interfaces
    • 9.1 Rules
    • 9.2 Code With Intent
  • Part 10: More C#
    • 10.0 DateTime
    • 10.1-LINQ
    • Challenge Answers
  • Part 11: Reference and Value Types
    • 11.0 Reference & Value Types
  • Eleven Fifty Style Guide
Powered by GitBook
On this page
  • File Location
  • Discussion
  1. Part 8: Null Coalescing Operator

8.0 Null Coalescing Operator

File Location

  1. Right click on your solution

  2. Go to Add > New Project and select Console App (.NET Framework)

  3. Name it Null

Discussion

The C# Null Coalescing Operator ?? is a binary operator that simplifies checking for null values. It can be used with both nullable types and reference types. It is represented as x ?? y which means if x is non-null, evaluate to x; otherwise, y.

In the syntax x ?? y: 1. X is the first operand which is a variable of a nullable type. 2. Y is the second operand which has a non-nullable value of the same type.

Null coalescing operators are evaluated from right to left. If you have the expression x ?? y ?? z it will be read as x ?? (y ?? z)

Null coalescing operators can be used in place of some if else statements such as the one below. The first example will be with an if else statement and the second example will be with the null coalescing operator.

    class Program
    {
        static void Main(string[] args){
            int? a = null;
            int b;
            if (a.HasValue)
                b = a.Value;
            else
                b = 0;
            Console.WriteLine("Value of b is {0} ", b);
            Console.ReadLine();
        }

    }

Or...

    class Program
    {
        static void Main(string[] args){
            int? a = null;
            int b = a ?? 0;
            Console.WriteLine("Value of b is {0} ", b);
            Console.ReadLine();
        }
    }

We were able to refactor to two lines of code. In the code above it says, if a has been assigned a non-null value, then this value will be assigned to the int b. But, since the nullable type a has been assigned null, the value to the right of the operator ?? i.e. zero will be assigned to b instead.

The value of b - (0), is printed.

PreviousPart 8: Null Coalescing OperatorNextPart 9: Interfaces

Last updated 7 years ago

Interfaces

Next: