为什么要在获取方法之前需要IEnumerable ?

问题描述 投票:3回答:2

我刚刚开始使用ASP.Net学习Web API。我从Visual Studio创建了一个新项目,试图了解MVC文件夹结构和API调用。我想知道的是,为什么在get方法之前我们需要IEnumarable。

在我的ValuesController.cs中,

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

根据Microsoft Documentation,此公开了枚举器,该枚举器支持对指定类型的集合进行简单的迭代,但是认为如果我的数据库中有整数,是否也需要将其转换为字符串?

c# asp.net api
2个回答
5
投票

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

如果我的数据库中有整数,我需要将其转换为字符串吗?

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

喜欢,

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

关于IEnumerable<>

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

从MSDN文档IEnumerable Interface

公开一个枚举器,它支持对非通用集合。


3
投票

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

string

或具有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响应的通用逻辑移动到单独的类中。
  • 通过隐藏构造响应的底层细节,使控制器动作的意图更加清晰。
© www.soinside.com 2019 - 2024. All rights reserved.