Web应用程序中的方法应该是公开的还是内部的?

Sha*_*hen 4 c# asp.net methods asp.net-mvc access-modifiers

在Web应用程序的范围内,将方法的可访问性声明为publicvs是internal什么意思?

Web应用程序通常包含仅在应用程序内部使用的方法。例如,电子商务网站可能包含一种检索用户的订单历史记录的方法。遵循以下原则:

public List<Orders> RetrieveOrders() {
    //code goes here
}
Run Code Online (Sandbox Code Playgroud)

如果此方法包含在类库中,则publicand internal访问修饰符的含义非常简单;公共方法可以在库本身之外访问,而内部方法则不能。

Web应用程序在实际应用上有什么区别吗?

编辑:我的问题已被建议与“ 公共”,“私人”,“受保护”和“无”之间什么区别?。我不要求解释访问修饰符。我要问的是,网站上的方法上的访问修饰符是否有任何意义。

Ale*_*kov 5

通常,public应将其限制为外部可见的方法-包括公共API和由于技术限制而必须公开的方法(即ASP.Net页面的类)。

在Web应用程序的情况下,通常不存在“公共API”,因为此类库通常不希望由外部用户使用。

因此,Web应用程序开发internalpublicWeb应用程序开发之间几乎没有实际区别。仅使用时会带来一些次要的便利,public因为您不再需要InternalsVisibleTo单元测试的属性。

更多的讨论:在一个内部类公开与内部方法内部与公开在C#

旁注:ASP.Net MVC网站是一个类库-因此,与类库相关的访问修饰符的所有讨论都适用于ASP.Net MVC / WebAPI网站。