formBabySeal
не null
только потому, что вы им распоряжаетесь.Итак, formBabySeal.Close()
будет называться.
Ваш код эквивалентен этому при рассмотрении того, какие методы вызываются:
Form formBabySeal = new Form();
formBabySeal.Show();
formBabySeal.Close(); //Dispose Form
formBabySeal.Close();
Это закроет форму (первый вызов Close
), а второй вызов не будетчто угодно, потому что форма уже закрыта.
Однако, как отмечает Стив в разделе комментариев, в вашем коде будет утечка памяти, потому что Shoot
все еще содержит ссылку на Close
метод formBabySeal
и из-за этого formBabySeal
будет оставаться в живых до тех пор, пока экземпляр класса Hunter
жив.