繁体   English   中英

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

[英]C# naming conventions for variables when I have a base class?

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

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

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


public class ContentsController : BaseController
    {

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

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

更新:

我仅在Contents控制器内使用_cs。 我应该为此使用其他访问属性吗? 它是私有的还是在基本控制器中受保护的?

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

public IContentsService ContentsService { get; set;

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

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

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

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

HTH。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM