0

我需要一些关于我用于我的应用程序的命名约定的帮助。这是我所拥有的:

public class BaseController : Controller
    {
        public BaseController()
        {
        }

        [Dependency]
        public IContentService _cs { get; set; }
   }


public class ContentsController : BaseController
    {

        public ContentsController(
            IContentService contentService)
        {
            _cs = contentService;
        }

有人可以让我知道我是否应该选择更好的命名约定以及我设置公共的方式是否正确?

更新:

我只在 Contents 控制器中使用 _cs。我应该为此设置不同的访问属性吗?它应该在基本控制器中是私有的还是受保护的?

4

1 回答 1

4

您选择的成员变量命名 (_cs) 不适合公共属性(尽管这实际上是一个偏好问题)。使用带有下划线前缀的“小写驼峰”命名通常是为私有成员保留的(不过,.NET 建议使用小驼峰带前缀)。公共属性通常应使用 UpperCamelCase 表示法声明;

public IContentsService ContentsService { get; set;

您可以在此处找到有关 Microsoft 命名约定建议的信息:http: //msdn.microsoft.com/en-us/library/ms229045.aspx

至于您的基本控制器类,除非您有调用者将实例化 BaseController 的情况,而不是更具体的类型(例如 ContentsController)将类声明为抽象以使用法清晰(即;'BaseController' 不是直接创建或使用),并将构造函数声明为“受保护”;

public abstract class BaseController
{
    protected BaseController()
    {
        ...
    }
}

最后考虑的是这个;IContentsService 是否属于 BaseController?从您的命名来看,似乎只有 ContentsController 会知道或使用 IContentsService,因此可能将该属性直接移到 ContentsController 类中。

HTH。

于 2012-05-31T03:30:49.320 回答