Unity开发人员如何在从对象派生时约束通用类型参数?

问题描述 投票:0回答:1

Unity开发人员如何在从对象派生时约束通用类型参数?

[寻找问题的答案时,我来了the question。有一个答案告诉以下内容:

两个约束之间没有区别,除了不允许一个约束无用地进行显式声明。

证明约束对象应该是不可能的。在Unity中,我们可以看到以下方法:

public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation) where T : Object;

enter image description here

是因为Unity使用的是Mono,而不是CLR,这会发生吗?

c# unity3d generics constraints
1个回答
1
投票

这是因为Object约束不是System.Object,而是您正在查看的类UnityEngine.Object

例如...

//public class Object { }

public class MyClass<T> where T : Object { }

编译失败,出现错误:

CS0702约束不能是特殊类'对象'

…但是如果您取消注释第一行,将会成功。

© www.soinside.com 2019 - 2024. All rights reserved.