繁体   English   中英

Unity 开发人员如何限制从 Object 派生的泛型类型参数?

[英]How were Unity developers able to constrain a generic type parameter on being derived from Object?

Unity 开发人员如何限制从 Object 派生的泛型类型参数?

在寻找问题的答案时,我遇到了这个问题 有答案说明以下内容:

这两个约束之间没有区别,除了一个是不允许明确声明的。

证明应该不可能约束对象。 在 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 约束不能是特殊类“对象”

...但是如果你取消注释第一行就会成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM