Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
C#

Null-Conditional (?) and Null-Coalescing (??) Operators in C#

- 04.05.19 | 22.11.19 - ErcanOPAK

Null coalescing: The null coalescing operator “??” uses two question marks. With it you can use a custom value for a null reference variable. It simplifies null tests.

C# program that uses null coalescing operator
using System;

class Program
{
    static string _name;

    /// <summary>
    /// Property with custom value when null.
    /// </summary>
    static string Name
    {
        get
        {
            return _name ?? "Default";
        }
        set
        {
            _name = value;
        }
    }

    static void Main()
    {
        Console.WriteLine(Name);
        Name = "Perls";
        Console.WriteLine(Name);
        Name = null;
        Console.WriteLine(Name);
    }
}

Output
-------
Default
Perls
Default

Null conditional: Similar to the coalescing operator, the null conditional operator tests for null before accessing a member of an instance.

C# program that uses null-conditional operator
using System;

class Program
{
    static void Test(string name)
    {
        // Use null-conditional operator.
        // ... If name is not null, check its Length property.
        if (name?.Length >= 3)
        {
            Console.WriteLine(true);
        }
    }

    static void Main()
    {
        Console.WriteLine(1);
        Test(null);
        Console.WriteLine(2);
        Test("cat"); // True.
        Test("x");
        Test("parrot"); // True.
    }
}

Output
-------
1
2
True
True

Related posts:

ASP.NET Core “IHostedService Never Stops” — Fixing Broken Graceful Shutdowns

Display HTPP Headers in C# & ASP.net

Convert comma separated string into a List in C#

Post Views: 146

Post navigation

How to refresh a web page for every five minutes
How do you connect to multiple MySQL databases on a single webpage?

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

December 2025
M T W T F S S
1234567
891011121314
15161718192021
22232425262728
293031  
« Nov    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (916)
  • Get the First and Last Word from a String or Sentence in SQL (798)
  • How to select distinct rows in a datatable in C# (773)
  • How to add default value for Entity Framework migrations for DateTime and Bool (773)
  • How to make theater mode the default for Youtube (602)
  • Add Constraint to SQL Table to ensure email contains @ (558)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (535)
  • Average of all values in a column that are not zero in SQL (505)
  • Find numbers with more than two decimal places in SQL (421)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (416)

Recent Posts

  • Visual Studio “F5 Takes Forever” — IIS Express Cache
  • WordPress Slow First Load — Autoloaded Options Table
  • Windows 11 Laptop Overheats — Turbo Boost Gone Wrong
  • Windows 11 Slow Context Menu — The Explorer Extension Trap
  • AJAX “Works Once, Then Fails” — Cached POST Response
  • JS Memory Leaks — Forgotten Event Listeners
  • HTML5 button Defaults to submit (Surprise!)
  • CSS opacity Breaks Child Elements — Use RGBA Instead
  • ASP.NET Core Health Checks That Actually Matter
  • ASP.NET Core “Slow Startup” — Reflection Scanning Trap

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (916)
  • Get the First and Last Word from a String or Sentence in SQL (798)
  • How to select distinct rows in a datatable in C# (773)
  • How to add default value for Entity Framework migrations for DateTime and Bool (773)
  • How to make theater mode the default for Youtube (602)

Recent Posts

  • Visual Studio “F5 Takes Forever” — IIS Express Cache
  • WordPress Slow First Load — Autoloaded Options Table
  • Windows 11 Laptop Overheats — Turbo Boost Gone Wrong
  • Windows 11 Slow Context Menu — The Explorer Extension Trap
  • AJAX “Works Once, Then Fails” — Cached POST Response

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2025 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com