HomeSearch

C# Null String Example

Use null strings and empty strings. See how to avoid NullReferenceExceptions.

Null strings

present difficulties. We often deal with null or uninitialized string references. Strings are initialized to null automatically at the class level, but we must assign them in methods.Strings

Tip: One popular method for dealing with null strings is the string.IsNullOrEmpty method.

IsNullOrEmpty, IsNullOrWhiteSpace

Example.

All class-level reference variables are initialized to null. Strings are reference types—they do not contain the character values in the variable. Instead the variable points to an object on the heap that contains that data.NullObject

Class: This example shows that when a class-level variable (static or not) is used in any method, it is null if it has not been initialized yet.

Note: The compiler allows the code to be executed. This is a pattern that many programs use.

Info: The commented-out part shows that a compile-time error will occur if you not assign the string. This is called definite assignment analysis.

Definite Assignment

Tip: The example shows that you can use unassigned member variable strings, but not unassigned local variable strings.

C# program that uses null string using System; class Program { static string _test1; static void Main() { // Instance strings are initialized to null. if (_test1 == null) { Console.WriteLine("String is null"); } string test2; // // Use of unassigned local variable 'test2' // if (test2 == null) // { // } } } Output String is null

Length.

One common problem with null strings is trying to take their lengths with the Length property. This will cause a NullReferenceException. The article on the string Length property on this site addresses this issue.String Length
Exception thrown System.NullReferenceException: Object reference not set to an instance of an object.

Summary.

We saw how null strings are initialized at the class level, and how to definitely assign them in the local variable declaration space. We saw some common errors and reviewed the fact that strings are a reference type, not a value type.
Home
Dot Net Perls
© 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com.