簡體   English   中英

FUNC <void> 作為輸入參數

[英]Func<void> as input parameter

我在C#中有一些參數的方法:

public static void DeleteSingleItemInDataGrid
    (DataGrid dataGrid, String IDcolumnName, Func<int> afterCompletionMethod_ToRun)

我想將第三個參數類型更改為Func< void >但是我不能。 我該怎么做?

換句話說, 我的問題是如何將方法(或具有空結果的函數)作為方法參數傳遞?

引用“返回” void的方法的委托在.NET術語中稱為Action ,這也稱為委托類型:

因此,您的方法簽名應為:

public static void DeleteSingleItemInDataGrid
    (DataGrid dataGrid, String IDcolumnName, Action afterCompletionMethod_ToRun)

如果您需要將int參數傳遞給它,而不返回int ,那就是這樣:

public static void DeleteSingleItemInDataGrid
    (DataGrid dataGrid, String IDcolumnName, Action<int> afterCompletionMethod_ToRun)

這接受帶有int參數的方法,該方法不返回任何值(也稱為“返回” void )。

這也意味着您不能創建一個通用方法,該方法既接受返回值的方法又接受不返回僅使用一個方法的值的方法,而是需要使用Action創建一個重載,而使用Func<T>創建一個重載。

您可以使用的動作委托。 它將執行給定的任務,並且不返回值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM