繁体   English   中英

为什么我们需要 IEnumerable<string> 在获取方法之前?</string>

[英]Why we need IEnumerable<string> before get method?

我刚刚开始使用 web API 学习 ASP.NET。我从 visual studio 创建了一个新项目并试图了解 MVC 文件夹结构和 API 调用。

在这里我想知道的是:为什么我们在get方法之前需要IEnumerable<string>

在我的ValuesController.cs中,

        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

根据Microsoft 文档,这会公开枚举器,它支持对指定类型的集合进行简单迭代,但想想如果我的数据库中有一个 integer,我是否也需要将其转换为字符串?

IEnumerable<string>Get()操作方法的返回类型。 如果您的 api 返回任何值,那么您需要将该类型作为函数的返回类型

如果我的数据库中有一个整数,是否还需要将其转换为字符串?

  • ,那么您可以返回给定的整数,该 api 端点的返回类型将为int

喜欢,

    //+ Access Modifier
    //|     + Return Type           
    //|     |    + Function name
    public int Get()
    {
        return 200; //status code for Ok.
    }

关于IEnumerable<>

如果您有多个整数并希望返回这些整数的集合,请使用IEnumerable<int>

从 MSDN 文档IEnumerable Interface

公开一个枚举器,它支持对非泛型集合的简单迭代。

此外,您可以使用string值返回IHttpActionResult

public IHttpActionResult Get()
{
    var model = new string[] { "value1", "value2" };
    return Ok(model);
}

或使用int值:

public IHttpActionResult Get()
{
    var model = new int[] { 1, 2, 3 };
    return Ok(model);
}

IHttpActionResult允许您返回 HTTP 状态等。 以下是使用 IHttpActionResult 接口的一些优点:

  • 简化对控制器的单元测试。
  • 将用于创建 HTTP 响应的通用逻辑移动到单独的类中。
  • 通过隐藏构建响应的低级细节,使控制器操作的意图更加清晰。

如果您的 GET 端点应返回数字集合而不是单个数字,那么您肯定需要返回某种列表,无论是 IEnumerable 还是 List 或其他。

暂无
暂无

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

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