创建实现给定接口的对象的实例

Mam*_*ate 0 c# generics

我试图用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)

有人可以解释为什么我不能创建一个实现给定接口的对象实例,并编写正确的方法来实例化这样的对象吗?

Sel*_*enç 7

你的类型不匹配.SpawnableCollectible实现ISpawnable<ParametersCollectible>不是ISpawnable<SpawnableParameters>这样,转换失败,as运算符返回null.