在Web应用程序的范围内,将方法的可访问性声明为public
与internal
的含义是什么?
Web应用程序通常包含仅在应用程序本身内使用的方法。例如,电子商务网站可以包含检索用户的订单历史的方法。沿着:
public List<Orders> RetrieveOrders() {
//code goes here
}
如果此方法包含在类库中,public
和internal
访问修饰符的重要性相当简单;公共方法可以在图书馆本身之外访问,内部方法也不会。
Web应用程序有什么实际区别吗?
编辑: 我的问题被认为是What is the difference between Public, Private, Protected, and Nothing?的副本。我不是要求解释访问修饰符。我问的是,网站中的方法访问修饰符是否有任何意义。
答案 0 :(得分:3)
一般来说,public
应限于外部可见的方法 - 这包括公共API和必须暴露的技术限制的方法(即ASP.Net页面的类)。
在Web应用程序的情况下,通常没有“公共API”,因为这些库通常不会被外部用户使用。
因此,对于Web应用程序开发,internal
和public
之间几乎没有实际差异。由于您不再需要public
个单元测试属性,因此仅使用InternalsVisibleTo
会获得一些小的便利。
更多讨论:public vs. internal methods on an internal class,internal vs public in c#
附注:ASP.Net MVC网站是一个类库 - 所以关于类库的访问修饰符的所有讨论都适用于ASP.Net MVC / WebAPI站点。