Довелось как-то раз отлаживать вот такой код на C#, который «на ровном месте» падал с
Да, вот на этой самой строчке с присвоением свойства падал
Как оказалось — в некотором роде да, перестал. Правда, и компилятор оказался не тем, за кого себя выдаёт, да и проверки вовсе не гарантированы рантаймом… Подробнее — под катом.
NullReferenceException
: public class Tester {
public string Property { get; set; }
public void Foo() {
this.Property = "Some string"; // NullReferenceException
}
}
Да, вот на этой самой строчке с присвоением свойства падал
NullReferenceException
. Что за дела, думаю — неужели рантайм перестал проверять наличие экземпляра перед вызовом экземплярных методов?Как оказалось — в некотором роде да, перестал. Правда, и компилятор оказался не тем, за кого себя выдаёт, да и проверки вовсе не гарантированы рантаймом… Подробнее — под катом.