Avatar Class 的构造函数 returns null
Constructor returns null for Avatar Class
我认为 C# 中的 class 构造函数不应该 return null。但是 Unity3D 中 Avatar class 的构造函数 return 为 null。
您不必使用 Unity3D 来产生想法。当它不在语言的定义中时,我问它怎么可能。就算有可能是Unity引擎的bug,这样的bug有可能吗?
如果你使用Unity,你可以用这段代码进行测试:
[ExecuteInEditMode]
public class Test : MonoBehaviour {
void Update(){
Avatar avatar = new Avatar();
if(avatar == null) Debug.Log("Constructor really returns null.");
}
}
注意事项:
- 头像 class 继承自 UnityEngine.Object
- 继承自 UnityEngine.Object 的其他 classes 没有这个问题
- Unity 使用自定义版本的 Mono 框架。
问题是,==
运算符过载,可能会检查与实际对象不同的内容。对于任何继承自 UnityEngine.Object
的 class,您不应通过 new
实例化 class。你必须使用 UnityEngine.Object.CreateInstance
.
我认为 C# 中的 class 构造函数不应该 return null。但是 Unity3D 中 Avatar class 的构造函数 return 为 null。 您不必使用 Unity3D 来产生想法。当它不在语言的定义中时,我问它怎么可能。就算有可能是Unity引擎的bug,这样的bug有可能吗?
如果你使用Unity,你可以用这段代码进行测试:
[ExecuteInEditMode]
public class Test : MonoBehaviour {
void Update(){
Avatar avatar = new Avatar();
if(avatar == null) Debug.Log("Constructor really returns null.");
}
}
注意事项: - 头像 class 继承自 UnityEngine.Object - 继承自 UnityEngine.Object 的其他 classes 没有这个问题 - Unity 使用自定义版本的 Mono 框架。
问题是,==
运算符过载,可能会检查与实际对象不同的内容。对于任何继承自 UnityEngine.Object
的 class,您不应通过 new
实例化 class。你必须使用 UnityEngine.Object.CreateInstance
.