相关疑难解决方法(0)

为什么在构造函数中抛出异常导致空引用?

为什么在构造函数中抛出异常导致空引用?例如,如果我们运行下面的代码,则teacher的值为null,而st.teacher则不是(创建了Teacher对象).为什么?

using System;

namespace ConsoleApplication1
{
  class Program
  {
    static void Main( string[] args )
    {
      Test();
    }

    private static void Test()
    {
      Teacher teacher = null;
      Student st = new Student();
      try
      {
        teacher = new Teacher( "", st );
      }
      catch ( Exception e )
      {
        Console.WriteLine( e.Message );
      }
      Console.WriteLine( ( teacher == null ) );  // output True
      Console.WriteLine( ( st.teacher == null ) );  // output False
    }
  }

  class Teacher
  {
    public string name; …
Run Code Online (Sandbox Code Playgroud)

c# null constructor exception object

21
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

constructor ×1

exception ×1

null ×1

object ×1