为什么在构造函数中抛出异常导致空引用?例如,如果我们运行下面的代码,则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)