我有2層重載C#的功能是這樣的:使用OleCommand和其他的SqlCommand爲函數的返回值C#函數指針
private void _Insert(Hashtable hash, string tablename, Func<string, object[], SqlCommand> command)
private void _Insert(Hashtable hash, string tablename, Func<string, object[], OleCommand> command)
基本上之一。
但是關於這個醜陋的事情是,我必須給函數指針轉換爲正確的類型,即使我覺得編譯器應該能夠解決它沒有問題:
class RemoteDatabase
{
public SqlCommand GetCommand(string query, object[] values);
}
_Insert(enquiry, "Enquiry", (Func<string, object[], SqlCommand>)(_RemoteDatabase.GetCommand));
有什麼辦法告訴編譯器變得更聰明以至於我不必進行類型轉換?還是我做錯了什麼?
編輯: 增加了一個賞金,因爲我真的有興趣學習。感謝您的任何建議。
哇..所有的答案各有4票!我該如何決定? – Jake 2011-07-15 03:45:29
C#4.0也可以計算出「動態」場景,但是會有性能問題。 – 2011-07-18 09:09:36