简体   繁体   English

如何在 C# 的方法中传递 2 个返回类型?

[英]how to pass 2 return types in a method in C#?

I'm in a service method that is supposed to return a user list, but in case it doesn't return this list it is supposed to return a string.我在一个应该返回用户列表的服务方法中,但如果它不返回这个列表,它应该返回一个字符串。 I did some research it seems that I have to use a generic the problem is that I have trouble to understand how it works and therefore adapt the synthax to my use case.我做了一些研究,似乎我必须使用通用的问题是我很难理解它是如何工作的,因此使合成器适应我的用例。 Thanks for your help.谢谢你的帮助。

public async Task<IEnumerable<Utilisateur>> AllUtilisateur(FormUserDTO formUserDTO)
{
 if(user){
   return user //Is a list
 }
 return error // Is a string
}

Maybe try a small wrapper class that encapsulate the result you want也许尝试一个小的包装器 class 封装你想要的结果

public class AsyncTaskResult<T>
{
    public string Error {get; set;}
    public T Value {get; set;}
    public bool Failed => string.IsNullOrEmpty(Error);
}


public async Task<AsyncTaskResult<IEnumerable<Utilisateur>>> AllUtilisateur(FormUserDTO formUserDTO)
{
 if(user){
   return new AsyncTaskResult<IEnumerable<Utilisateur>>> { Value = user } //Is a list
 }
 return new AsyncTaskResult<IEnumerable<Utilisateur>>> { Error = error } // Is a string
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM