我遇到以下情况:
Foo myFoo = new Foo(); // Init a Foo, right?
myFoo.bar = 5; // property assigned
Debug.Log(myFoo.bar); // Properly traces the value 5 or whatever to the console
Debug.Log(myFoo); // Traces "null" to the console..... WTF?!?!?!?
这是在 MonoDevelop 中结合使用 C# 和 Unity 3.5 发生的。在这种情况下,Foo 是 Object 的子类,据我所知,它不是动态的。我在这里遗漏了 C# 的一些细微差别,因为这是非常奇怪的行为,而且我从未在 ActionScript 3 或 Objective-C 中看到它。对我来说很奇怪的是,运行时能够访问/分配同时跟踪“null”的变量的属性,甚至不会抛出 NullException 或某种错误。关于为什么会发生这种情况的任何想法都会有很大的帮助。提前致谢。