0
有沒有一種方法可以在不輸入整個簽名的情況下編寫以下內容?委託聲明是否可以繼承另一個委託聲明?
//desired base signature
public delegate string BaseDelegate<TProfile, TResult>(string requestorID, DateTime sentDate, string serviceID,
string source, TProfile profile, out DateTime recieved, out DateTime sent, out string psatSystemID, out TResult[] result);
//ugly version of child
public delegate string CurriedDelegate<T>(string requestorId, DateTime sentDate, string serviceId, string source,
T profile, out DateTime recieved, out DateTime sent, out string psatSystemID, out T[] result);
//syntax sugar,doesn't compile
public BaseDelegate<T,T> CurriedDelegate<T>; //TProfile is same type as TResult
耶的代碼我是在項目的這個階段調用超出範圍進行清理。從我所知道的情況來看,在大多數情況下,在該服務層的98%中甚至全部使用了2個參數。當你說我可以創建'CurriedDelegate'時,你的意思是實例化,而不是定義一個簡短/甜美的簽名,對嗎? > 80%的服務層代碼「TProfile」和「TResult」是相同的。 –
Maslow
@Maslow:是的,如果你已經有了'BaseDelegate',你可以使用'新的CurriedDelegate (existingDelegate)'。 –