創建T:與我有以下方法的兩個不同構造
public void Add<T>() where T : ISetup, new() {
new T().Run();
} // Add
這可用於如下:
Add<SettingsSetup>()
哪裏SettingsSetup是:
public class SettingsSetup : ISetup {
private Func<String, String> _resolver;
public SettingsSetup(Func<String, String> resolver) {
_resolver = resolver;
}
public void Run() { }
}
我想能夠使用Add如下:
Add<SettingsSetup>()
或傳遞參數要在SettingsSetup使用:
Add<SettingsSetup>(Func<String, String>)
這可能嗎?
是什麼讓你覺得它不是?你是否嘗試簡單地編寫另一種方法重載? – 2014-10-01 21:12:23
是的,我無法在Add方法中使用新的T(Func resolver) –
2014-10-01 21:13:27
請記住,ISetup是一個接口...我可以將它作爲基類。基本上SettingsSetup或任何其他設置應允許使用使用Func或什麼都沒有... –
2014-10-01 21:15:20