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?!?!?!?

これは、Unity 3.5 と組み合わせて MonoDevelop で C# を使用して発生しています。この場合、Foo は Object をサブクラス化しており、私の知る限り、動的ではありません。これは非常に奇妙な動作であり、ActionScript 3 または Objective-C で見たことがないため、ここで見逃している C# のニュアンスはありますか。ランタイムが、NullException や何らかのエラーをスローすることなく、「null」を同時にトレースする変数のプロパティにアクセス/割り当てできるのは奇妙です。なぜこれが起こっているのかについてのアイデアは、大きな助けになるでしょう。前もって感謝します。

4

1 に答える 1

0

System.Object または UnityEngine.Object をサブクラス化していますか?

UnityEngine.Object は、ネイティブ表現に基づく Unity エンジン オブジェクトを表すために使用される特別なクラスです。そこから派生してはいけません。

于 2012-07-12T19:04:44.607 に答える