TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to C-SHARP

C# Null List (NullReferenceException)

Learn about null List references. A null list can cause a NullReferenceException to be thrown.
Null List. A List can be null. This is not the same as it being empty and having zero elements. The null literal in the C# language is a special-cased zero value for reference types. It is used often with the List type.ListNullReferenceException
First, this program that declares 3 List references and checks them against the null literal. The program shows the difference between a List that is a field, such as a static List, and a List that is a local variable.

Also: It causes a NullReferenceException when it tries to use a null list. This must be avoided.

Null

List A: The first List variable listA is initialized to a new empty List object. This variable does not have the value of null.

List B: The second List variable listB is initialized to the null literal. No memory is allocated on the managed heap in this assignment.

List field: This field is located in one place in the entire program's memory. If you assign it in different places, the same reference will be changed.

C# program that uses null Lists using System; using System.Collections.Generic; class Program { // // Field type List. // static List<int> _listField; static void Main() { // // Shows an empty List, not a null List. // List<string> listA = new List<string>(); Console.WriteLine(listA == null); // // A null List reference. // List<string> listB = null; Console.WriteLine(listB == null); // // Calling an instance method on a null List causes a crash. // // listB.Add("cat"); // // Static Lists and field Lists are automatically null. // Console.WriteLine(_listField == null); Console.WriteLine(default(List<bool>) == null); } } Output False True True True Exception caused by null Lists Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at Program.Main....
Notes, fields. List fields (and other reference types) are automatically treated as null references when they are loaded. You never need to initialize reference fields to null when you first encounter them.
Discussion. The book Refactoring by Martin Fowler contains an interesting tutorial for replacing the null literal in a program with a "null object". This can simplify some complex logic and even reduce possible crashes in edge cases in your program.
It makes sense to substitute a "dummy" object instance to stand in for cases where no data is available, such as when the customer information is absent on a purchase. This can even improve performance due to fewer if-checks.If
Summary. We looked at null List references. Lists that are fields in a class, either static or instance, are automatically initialized to null. Lists that are local variables are not initialized to null.

And: You cannot call an instance method on a null List. The default value expression returns null for the List constructed type.

Default
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf