我想了解一下我用于我的应用程序的命名约定。 这就是我所拥有的:
public class BaseController : Controller
{
public BaseController()
{
}
[Dependency]
public IContentService _cs { get; set; }
}
public class ContentsController : BaseController
{
public ContentsController(
IContentService contentService)
{
_cs = contentService;
}
有人可以告诉我是否应该选择更好的命名约定,以及我公开的方式是否正确?
更新
我只在内容控制器中使用_cs。我应该拥有不同的访问属性吗?它应该在基本控制器中是私有的还是受保护的?
答案 0 :(得分:3)
您选择的成员变量命名(_cs)不适合公共属性,(尽管这确实是一个偏好问题)。使用带有下划线前缀的“低驼峰案例”命名通常是为私人成员保留的(但是,.NET建议使用 no 前缀的较低的驼峰案例)。通常应使用UpperCamelCase表示法声明公共属性;
public IContentsService ContentsService { get; set;
您可以在此处找到有关Microsoft命名约定建议的信息:http://msdn.microsoft.com/en-us/library/ms229045.aspx
对于你的基本控制器类,除非你有一个调用者实例化BaseController的情况,而不是一个更具体的类型(例如ContentsController)将该类声明为abstract以使用清楚(即;那个'BaseController '不能直接创建或使用),并将构造函数声明为'protected';
public abstract class BaseController
{
protected BaseController()
{
...
}
}
最后的考虑是这个; IContentsService属于BaseController吗?从您的命名来看,似乎只有ContentsController才能知道或使用IContentsService,因此可能直接将该属性移动到ContentsController类中。
HTH。