C# 将System.Action作为返回类型的目的是什么?
我正在使用的代码如下所示: 之前:C# 将System.Action作为返回类型的目的是什么?,c#,C#,我正在使用的代码如下所示: 之前: MessagingCenter.Subscribe<CardsTabViewModel, Templates.Button>(this, "DeleteQuiz", async (s, btn) => { var canContinue = await DisplayAlert("Delete Quiz", "Do you want to delete the results for Quiz " + (int)btn.TapComma
MessagingCenter.Subscribe<CardsTabViewModel, Templates.Button>(this, "DeleteQuiz", async (s, btn) =>
{
var canContinue = await DisplayAlert("Delete Quiz", "Do you want to delete the results for Quiz " + (int)btn.TapCommandParam, "OK", "Cancel");
if (canContinue == false)
return;
App.DB.DeleteQuizHistory((int)btn.TapCommandParam);
AddQuizDetails();
});
MessagingCenter.Subscribe(此“删除测验”,异步,btn)=>
{
var canContinue=wait DisplayAlert(“删除测验”,“是否要删除测验结果”+(int)btn.TapCommandParam,“确定”,“取消”);
如果(canContinue==false)
返回;
App.DB.deletequizhitory((int)btn.TapCommandParam);
AddQuizDetails();
});
之后:
MessagingCenter.Subscribe(这个“deletequick”,NewMethod());
}
private System.Action NewMethod()
{
返回异步(s,btn)=>
{
var canContinue=wait DisplayAlert(“删除测验”,“是否要删除测验结果”+(int)btn.TapCommandParam,“确定”,“取消”);
如果(canContinue==false)
返回;
App.DB.deletequizhitory((int)btn.TapCommandParam);
AddQuizDetails();
};
}
有人能给我解释一下为什么开发人员会使用System.Action作为返回类型吗。我以前从未见过System.Action,我想尝试了解它的功能。
System.Action
只是一个带有void
返回类型的委托,这意味着您可以在返回时像调用函数一样调用该动作,或者使用它创建void类型的委托,而无需显式定义
下面是一个示例,说明如何使用它:
public class SomeClass {
public static void CallMe() {
Console.WriteLine("Hello!");
}
public Action GetCallMe() {
return CallMe;
}
}
...
private void Main(string[] args) {
var classInstance = new SomeClass();
Action a = classInstance.GetCallMe();
a();
}
系统。Action
只是一个返回类型为void的委托,这意味着您可以像调用函数一样在返回时调用Action,或者使用它创建void类型的委托,而无需显式定义
下面是一个示例,说明如何使用它:
public class SomeClass {
public static void CallMe() {
Console.WriteLine("Hello!");
}
public Action GetCallMe() {
return CallMe;
}
}
...
private void Main(string[] args) {
var classInstance = new SomeClass();
Action a = classInstance.GetCallMe();
a();
}
新方法的签名有问题。它应该是
private System.Func NewMethod()
,这样就可以像这样等待生成的任务:wait NewMethod()(arg1,arg2)
现在任务被触发并被遗忘。NewMethod
的签名有问题。它应该是private System.Func NewMethod()
,这样就可以像这样等待生成的任务:wait NewMethod()(arg1,arg2)代码>现在任务已启动并被遗忘。