1

我遇到以下情况:

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 或某种错误。关于为什么会发生这种情况的任何想法都会有很大的帮助。提前致谢。

4

1 回答 1

0

您是继承 System.Object 还是 UnityEngine.Object?

UnityEngine.Object 是一个特殊类,用于表示由本机表示支持的 Unity 引擎对象。你不应该从中获得。

于 2012-07-12T19:04:44.607 回答