Unity开发人员如何在从对象派生时约束通用类型参数?
[寻找问题的答案时,我来了the question。有一个答案告诉以下内容:
两个约束之间没有区别,除了不允许一个约束无用地进行显式声明。
证明约束对象应该是不可能的。在Unity中,我们可以看到以下方法:
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation) where T : Object;
是因为Unity使用的是Mono,而不是CLR,这会发生吗?
这是因为Object
约束不是System.Object
,而是您正在查看的类UnityEngine.Object
。
例如...
//public class Object { }
public class MyClass<T> where T : Object { }
编译失败,出现错误:
CS0702约束不能是特殊类'对象'
…但是如果您取消注释第一行,将会成功。