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.StringsNullNullable
Tip: One popular method for dealing with null strings is the string.IsNullOrEmpty method.
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.Object
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.
Tip: The example shows that you can use unassigned member variable strings, but not unassigned local variable strings.
C# program that uses null string
static string _test1;
static void Main()
// Instance strings are initialized to null.
if (_test1 == null)
Console.WriteLine("String is null");
// // Use of unassigned local variable 'test2'
// if (test2 == null)
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
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.