我在 c# 中有一些带有一些参数的方法:
public static void DeleteSingleItemInDataGrid
(DataGrid dataGrid, String IDcolumnName, Func<int> afterCompletionMethod_ToRun)
我想将第三个参数类型更改为
Func< void >
但我不能。我该怎么做?换句话说,我的问题是如何将方法(或函数 与 void 结果 )作为方法参数传递?
最佳答案
引用“返回”的方法的委托(delegate) void
被称为 Action
在 .NET 术语中,这也是委托(delegate)类型的名称:
所以你的方法签名是这样的:
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>
.
关于c# - Func<void> 作为输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216074/