我如何返回字符串以及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>
  }

如何在一个方法中实现这一点,以及如何维护返回类型?

我如何返回字符串以及IEnumerable<T>从c#中的相同方法

首先:一个方法不能有多个返回类型。

即使这是一个糟糕的设计,你也可以(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作为函数的返回类型,然后您可以根据输入返回stringIEnumerable<T>。像这样:

public object MyResult<T>(string input)
{
    if (true)
        return "string";
    else
        return return new List<T>() { default(T) };
}
相关文章: