我需要實現一個返回基於類型的對象的方法。如何實現返回基於類型傳遞的對象的方法
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>();
有沒有更好的方法呢?
[編輯]: - 我不想每次創建對象。我需要將它保存在內存中,以及何時有電話。我想從那裏返回對象。除字典外還有其他方法嗎?
您可以發佈與特定類型的期望使用? –
你的問題是:維護一個字典完全取決於你想創建新的對象還是返回緩存的對象。你需要更多的信息來澄清你的問題。 –
好的,你爲什麼要保留創建的對象?一個原因可能是創建對象是昂貴的,並且您想緩存它們,並且可能有多個對象實例的實例。另一種情況是你想確保,只有一個對象實例(即Singleton Pattern),在這種情況下,你仍然可以使用我的答案,在那裏你使用一個新的操作符,但是隻有一個對象實例會創建。那麼不需要創建字典,這在我看來並不那麼優雅。我將編輯答案以顯示 – BuddhiP