2

就渲染列表而言,获得返回的控制器有什么区别?

在 Linq 数据上下文中:

public IList<Response> GetResponses(int ID)
    {
        var responses = from r in this.Responses where r.ID == ID orderby r.Date select r;

        return responses.ToList();
    }

或者

 public List<Response> GetResponses(int ID)
    {
        var responses = from r in this.Responses where r.ID == ID orderby r.Date select r;

        return responses.ToList();
    }
4

3 回答 3

9

我怀疑控制器有很大的不同,但您可能应该尝试尽可能少地透露有关您的类的私有数据的信息。这意味着公开接口而不是具体类型,并使用公开客户端操作数据所需的最少信息量的接口。

如果控制器只需要一个,IEnumerable<Response>那么你应该考虑将它的返回类型设为GetResponses.

于 2009-01-11T01:09:05.750 回答
1

不同之处在于,如果您使用 IList 接口更改您的 List 实现,则不需要更新控制器。除非您打算将您的图书馆提供给其他人使用,否则这可能没什么大不了的。在这种情况下,抽象可能是合理的,因为如果您进行更改,您将不是唯一需要更新代码的人。

于 2009-01-11T01:49:37.947 回答
-6

考虑返回一个数组,考虑接受 IEnumerable 作为参数。

于 2009-01-11T04:50:45.680 回答