我需要实现一种基于类似类型返回对象的方法。

 public interface IBase
{
}
public class Base1 : IBase { }
public class Base2 : IBase { }
public class Base3 : IBase { }
public class MyClass
{
    public IBase GetObject<T>() where T:IBase
    {
        // should return the object based on type.
        return null;
    }

}


我是否需要像GetObject方法中那样维护字典?

            Dictionary<Type, IBase> test = new Dictionary<Type, IBase>();


有没有更好的方法呢?

[编辑]:-我不想每次都创建对象。我需要将其保存在内存中以及有电话时。我想从那里返回对象。除了字典,还有其他方法吗?

最佳答案

public class MyClass {
    public IBase GetObject<T>() where T:IBase, new() // EDIT: Added new constraint
    {
        // should return the object based on type.
        return new T();
    }

}

关于c# - 如何实现基于传递的类型返回对象的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13466337/

10-13 02:02