获取有关呈现List的返回的控制器有什么区别?
在Linq dataContext中:
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();
}
OR
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();
}
答案 0 :(得分:9)
我怀疑控制器存在很大差异,但您应该尝试尽可能少地披露关于类的私有数据的信息。这意味着公开接口而不是具体类型,并使用接口公开客户端对数据进行操作所需的最少量信息。
如果控制器只需要IEnumerable<Response>
,那么您应该考虑将返回类型设为GetResponses
。
答案 1 :(得分:1)
不同之处在于,如果使用IList接口更改List实现,则无需更新控制器。除非你打算让你的图书馆可供他人使用,否则这可能不是什么大不了的事。在这种情况下,抽象可能是合理的,因为如果您进行更改,您将不会是唯一需要更新代码的人。
答案 2 :(得分:-6)
考虑返回一个数组,考虑接受IEnumerable作为参数。