我有基类的变量的C#命名约定?

时间:2012-05-31 03:23:22

标签: c#

我想了解一下我用于我的应用程序的命名约定。 这就是我所拥有的:

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

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


public class ContentsController : BaseController
    {

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

有人可以告诉我是否应该选择更好的命名约定,以及我公开的方式是否正确?

更新

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

1 个答案:

答案 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。