我創建了一個通用任務界面從通用的限制從
public interface ICalcLoaderTask
{
Task<T> Execute<T>(BaseTaskParameters taskParams, CancellationToken cancellationToken) where T : CalcLoaderTaskResult;
}
而且從CalcLoaderTaskResult
public class CopyNMStoreResult : CalcLoaderTaskResult
{
public string NMStoreResultsFilePath { get; set; }
}
衍生我在執行ICalcLoaderClass的一類任務派生收益類,我想不出一個返回結果類的方法
public async Task<T> Execute<T>(BaseTaskParameters taskParams, CancellationToken cancellationToken) where T : CalcLoaderTaskResult
{
var copyFileTaskParams = (CopyFilesTaskParameters)taskParams;
var GlobalNMStoreResultsFilePath = string.Format("{0}\\WhateverTheFileNameIs.xls", copyFileTaskParams.GlobalShareFolderPath);
var LocalNMStoreResultsFilePath = string.Format("{0}\\WhateverTheFileNameIs.xls", copyFileTaskParams.GlobalShareFolderPath);
await FileUtility.CopyFileAsync(GlobalNMStoreResultsFilePath, LocalNMStoreResultsFilePath, cancellationToken);
var result = new CopyNMStoreResult
{
NMStoreResultsFilePath = GlobalNMStoreResultsFilePath
};
return result; //Cannot implicitly convert type
}
如何返回thi sresult?或者我的模式不正確?我將用從CalcLoaderTaskResult派生的不同返回類型重新使用這種類型的模式。 CalcLoaderTaskResult是抽象
您的函數不會返回一個'Task'或一個'T'類型的對象。爲什麼有兩個而不是'CopyNMStoreResult'或'CalcLoaderTaskResult'作爲返回類型? –
如果你想讓這個方法只返回一個特定的類型,那麼不要使它成爲通用的;使方法通用表明調用者可以提供他們想要指示應返回的內容的任何類型。 – Servy
我想創建一個可重用的界面。我需要重複這種模式25次,並希望有一個通用的界面來執行任務。返回類型會有所不同,但都來自CalcLoaderTaskResult –