1
我想創建一個方法與一個可選的泛型類型,以最大限度地減少SQL數據庫上的查詢數量。 (如果數據已經可用,則不需要運行查詢)可選的泛型類型,而無需手動指定類型
// Returns proper DataTable for selected Schedule
public static DataTable BuildReportTable<T>(Report report, List<T> InputList = null)
{
switch (report.ReportBase)
{
// Work Order Report
case 1:
List<ReportWorkOrder> wos = new List<ReportWorkOrder>();
if (InputList == null)
{
// Build WorkOrderReportList for report if none was passed
PullSQLData(() =>
{
wos = MPulseQueries.WorkOrderTableQuery();
}, 30, 46, "Failed to pull Work Order Data to generate table");
}
else
{
// If WorkOrderReportList was passed, use it
wos = InputList as List<ReportWorkOrder>;
}
switch (WOFilters[report.Filter][0])
{
case 0: //If all work orders report
return AllWOTable(report, wos);
case 1: //If open non PM work orders report
return OpenNonPMTable(report, wos);
case 2: //If open PM work orders report
return PMTable(report, wos);
case 3: //If open fluid change work orders report
return FluidChangeTable(report, wos);
case 4: //If custom filter work orders report
return CustomFilterTable(report, wos);
default:
return new DataTable();
}
default:
return new DataTable();
}
}
此代碼編譯時沒有問題並按預期執行。我唯一的問題是,爲了調用這個方法沒有可選參數,我必須手動指定一個類型。
DataTable DisplayedWorkOrders = BuildReportTable<ReportWorkOrder>(report);
所以,我的問題:有沒有辦法,我可以設置方法的默認類型,這樣我就不需要指定我每次調用它的方法嗎?
我可以忍受這一點。這在調用方法時保持乾淨,這是我的目標。謝謝! –
我不是未使用的類型參數的粉絲,但更好地隱藏在這裏,而不是在通話時間。 –
是的。眼不見,心不煩。 –