[英]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.