Почему исключение в конструкторе приводит к пустой ссылке?
Почему исключение в конструкторе приводит к пустой ссылке? Например, если мы запускаем коды ниже, значение учителя равно нулю, а st.teacher - нет (создается объект учителя). Зачем?
<code>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; public Teacher( string name, Student student ) { student.teacher = this; if ( name.Length < 5 ) throw new ArgumentException( "Name must be at least 5 characters long." ); } } class Student { public Teacher teacher; } } </code>