我有一个通用方法可以执行某些操作并且想要 将结果返回为字符串或IEnumerable
public IEnumerable<T> MyResult(string input)
{
do something return string based on some case or return IEnumerable<T>
}
任何帮助我如何在一个方法中实现这一点,并且hpw我是否保持返回类型
答案 0 :(得分:3)
首先:一个方法不能有多种返回类型。
即使这是糟糕的设计,你也可以(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;}
}
答案 1 :(得分:1)
您可以使用object
作为函数的返回类型,然后根据输入返回string
或IEnumerable<T>
。像这样:
public object MyResult<T>(string input)
{
if (true)
return "string";
else
return return new List<T>() { default(T) };
}