C# VisualStudio:如何轻松地将方法及其调用程序转换为异步
在VS2019中,是否可以更改方法的签名以返回C# VisualStudio:如何轻松地将方法及其调用程序转换为异步,c#,visual-studio,asynchronous,task,C#,Visual Studio,Asynchronous,Task,在VS2019中,是否可以更改方法的签名以返回任务或任务,并以级联方式使所有上游调用方异步 在VS2019中,是否可以更改方法的签名以返回任务或任务 简而言之,答案是否定的 因为可以重构方法的名称,如果您选择intellisense选项重命名,则调用方的名称将更改,但它不会处理您想要的任何异步需求。换句话说,重构不支持异步。为了异步,需要将方法标记为异步,并返回任务或任务。我们可以这样改变它: //previously: public int Something() { int some
任务
或任务
,并以级联方式使所有上游调用方异步
在VS2019中,是否可以更改方法的签名以返回任务或任务
简而言之,答案是否定的
因为可以重构方法的名称,如果您选择intellisense选项重命名,则调用方的名称将更改,但它不会处理您想要的任何异步需求。换句话说,重构不支持异步。为了异步,需要将方法标记为异步,并返回任务或任务。我们可以这样改变它:
//previously:
public int Something()
{
int something = ...;
return something;
}
//now
public async Task<int> Something()
{
int something = ...;
return await Task.FromResult(something);
}
//以前:
公共int某物
{
int某物=。。。;
归还某物;
}
//现在
公共异步任务
{
int某物=。。。;
返回等待任务。从结果(某物);
}
请注意,这并不意味着它本质上是异步的,它只是负责它的签名。您的意思是,以一种自动化的方式,比如内置重构?我不这么认为,不是以级联方式。AsyncFixer()是Visual Studio的一个扩展,它将突出显示可以或应该异步的位置。当您将方法标记为这样时,它将点亮下一个级别以进行更改。问题是仅仅更改签名通常是不够的,当异步可用时,不应该依赖于同步方法。AsyncFixer通常也会突出显示这些内容。它离它最近。