我试图用Activator.CreateInstance()构建一个对象,但是我收到的是因为某些未知的原因.
public class SpawnManager
{
public void CreateSpawnable<T>()
{
Type type = typeof(T);
ISpawnable<SpawnableParameters> spawnable = Activator.CreateInstance(type) as ISpawnable<SpawnableParameters>;
// the spawnable object always returns null
}
public void Start()
{
CreateSpawnable<SpawnableCollectible>();
}
}
public class SpawnableCollectible : ISpawnable<ParametersCollectible>
{
public void Spawn(ParametersCollectible parameters)
{
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么我不能创建一个实现给定接口的对象实例,并编写正确的方法来实例化这样的对象吗?
你的类型不匹配.SpawnableCollectible实现ISpawnable<ParametersCollectible>不是ISpawnable<SpawnableParameters>这样,转换失败,as运算符返回null.