我想優化以下順序,因爲運行時間線性增長,更多的是我添加的操作。有沒有更聰明的方法來實現這個在同一個類中,而不使用更多的輔助類/模式? 在此先感謝(並對編輯感到抱歉..)!如何用空檢查優化一系列操作?
public void SomeMethod(ClassZero foo)
{
var targetName = "";
var a = foo as ClassA;
if (a != null) targetName = a.DoSomething();
var b = foo as ClassB;
if (b != null) targetName = b.DoSomethingElse();
var c = foo as ClassC;
if (c != null) targetName = c.DoSomethingEntirelyElse();
var d = foo as ClassD;
if (c != null) targetName = d.DoSomethingInAnotherParallelWorld();
var furtherUse = localVariable.Process(targetName);
}
強烈建議您考慮是否可以使用抽象基類或接口來代替。另外,假設你找到一個匹配,你可能會'返回',你的代碼不會這樣做。這可以防止任何無關的類型檢查。除此之外,如果你需要檢查類型,那麼你將不得不花時間去做。我懷疑你會在你的類型檢查中發現性能瓶頸。 –
我會重新考慮我的設計,你可以簡單地在這個地方的界面上工作,並在這裏注入你正在調用的方法的具體實現。基本上ClassA和ClassB實現了IDoWork,它包含一個void DoWork()方法。你直接在上面的代碼 – Xeun
'中直接調用它'而不使用更多的helper類/模式?'當你需要改進代碼時,你很可能會想要使用某種輔助類/模式來實現它。任何時候當你爲自己提供這樣的限制時,你基本上都禁止你的問題的最佳解決方案。當面對這樣的問題時,你應該問的是,我如何利用助手類或模式來封裝我的程序的機制/行爲。 – Servy