Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
434 views
in Technique[技术] by (71.8m points)

c# - Why there is compiler error: Cannot convert void to string, where as there is no casting happening

I'm not sure why there is compiler error, Argument 1 Cannot convert 'void' to 'string', where as there is no casting happening. Below code creates a list of methods:

void FunctionList(string srcBucket, List<List<string>> pdfFileList, IAmazonS3 s3client)
{
    List<Action> actions = new List<Action>();
    foreach (var list in pdfFileList)
       list.Add(RenameFilesAsync(srcBucket, list, s3client).Wait()); // Getting error here
}

public async Task RenameFilesAsync(string srcBucket, List<string> pdfFiles, IAmazonS3 s3client)
{
  //Some code here
}

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your signature on RenameFilesAsync returns just a Task, not Task<T>. If you don't specify a type, it will not return a value, so it looks like void.

Here's the link to the async return types: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/async-return-types


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...