NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁,
以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序员头痛, 今天我将讲解这个令人头痛的例外是如何发生的.

可以导致NullReferenceException发生的源代码

我们先来看看什么样的代码可以导致NullReferenceException发生:

第一份代码, 调用函数时this等于null导致例外发生

using System;namespace ConsoleApp1{    class Program
    {        public class MyClass
        {            public int MyMember;            public void MyMethod() { }
        }        
        static void Main(string[] args)        {
            MyClass obj = null;
            obj.MyMethod();
        }
    }
}

第二份代码, 访问成员时this等于null导致例外发生

using System;namespace ConsoleApp1{    class Program