是否应该将大多数C#类成员设置为私有大部分时间,以防万一我希望其他类修改它们(然后我会将它们公开)?我看到大多数教程都会让所有班级成员都公开。我开始认为这可能是不好的做法。
想了解一般的软件工程原理。
例:
public class Product {
public int ProductID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
}
在应用程序的上下文中回答您的问题......
你的例子是Model1的例子。它的属性是公开的,因为:
按照惯例,带有getter和setter的公共属性将包含在model.2中
通常,属性是公共的(或受保护的或内部的),字段是私有的。
财产应以某种方式暴露。例如,Model公开了一些属性。
私有字段适用于依赖项。例如,在链接回购的ProductController
3中:
public class ProductController : Controller {
private IProductRepository repository;
// ...
public ViewResult List(int page = 1) {
// Use repository, only in ProductController
// ...
}
}
附:关于“通用软件工程原理”的问题可能会因为主要基于意见而被关闭。请参阅Stack Overflow帮助主题:How do I ask a good question?