我如何返回字符串以及IEnumerable从c#中的相同方法
本文关键字:方法 IEnumerable 何返回 返回 字符串 | 更新日期: 2023-09-27 18:02:07
我有一个通用的方法,它做一些操作,并希望返回结果为字符串或IEnumerable<T>
public IEnumerable<T> MyResult(string input)
{
// do something return string based on some
// case or return IEnumerable<T>
}
如何在一个方法中实现这一点,以及如何维护返回类型?
首先:一个方法不能有多个返回类型。
即使这是一个糟糕的设计,你也可以(A)添加一个out参数或(B)创建一个包含可枚举对象和字符串的DTO并返回。
(A):
public IEnumerable<T> MyResult(string input, out string output)
{
// do something
}
(B):
public MyDTO MyResult(string input)
{
// do something
}
和
public class MyDTO
{
public IEnumerable<T> resultAsEnumerable {get; set;}
public string resultAsString {get; set;}
}
您可以使用object
作为函数的返回类型,然后您可以根据输入返回string
或IEnumerable<T>
。像这样:
public object MyResult<T>(string input)
{
if (true)
return "string";
else
return return new List<T>() { default(T) };
}