我正在C#中編寫一個HTTP包裝類對象,我想給主函數接收函數作爲參數,然後在POST /得到。將函數傳遞給另一個函數
例如,我可能想要傳遞一個函數,用於檢查cookie的標頭,如果發現它,則僅返回true或傳遞檢查源內容的正則表達式函數。
我知道在PHP或JS我可以很容易地只傳遞函數作爲參數,但我不知道如何去創建與我想要使用的函數相匹配的代理。
我想代碼被稱爲「通用」成爲可能,以便它可以接受任何的功能,例如僞代碼會像
public bool MakeHTTPRequest(string url, object possiblefunction)
{
make HTTP request
if status == 200
{
string response = getresponse
if(object is function){
call object
}
}
}
所以功能可能會或可能不會獲得通過的,否則我可能用它設置一個全球性的財產。然後我需要檢查一個函數是否存在,如果有,就執行它。
函數可能是ANYTHING,我希望將來可以驗證代碼,以便它可以處理將來傳遞給它的任何類型的函數。
任何幫助將不勝感激。
感謝
使用行動,行動等.... –
或者,如果該函數返回的東西:[FUNC < TResult >(http://msdn.microsoft.com/library/bb534960.aspx),Func鍵等 - 事情是,行動或功能可能需要參數(這裏的'T's)。如果需要它們,您將無法在沒有參數的情況下「調用」動作或功能。 –
Corak
在方法簽名中使用數據類型對象通常是不好的做法。你可以這樣做,但你需要實現大量的異常處理。 – Brandon