【问题标题】:C# - Using auto implemented properties and naming conventionsC# - 使用自动实现的属性和命名约定
【发布时间】:2010-09-28 14:32:14
【问题描述】:

当使用自动实现的属性时,例如

公共字符串 MyProperty { get;放; }

在您了解命名约定之前,这很好。

我在类级别字段中使用下划线,即

字符串_MyProperty;

所以自动实现意味着变量是什么及其作用域并不明显。

如果你明白我的意思,有什么想法吗??

马尔科姆

编辑:由于该属性是公开的,因此您也不想使用下划线。

【问题讨论】:

    标签: c#


    【解决方案1】:

    PascalCasing 告诉您它的类级别和公开。 (看这个article about naming conventions for .NET

    【讨论】:

      【解决方案2】:

      当您使用自动属性和现代 IDE(如 Visual Studio)时,您根本不需要 _。如果您使用自动属性和不同的可见性,智能感知将正常工作。编译器也会检查它。

          public string SomeString { private set; get; }
      
          private string some2string;
      
          public string Some3string { set; get; }
      

      这意味着 SomeString 只能在内部写入。你不会在课堂之外获得财产。所以没有魔法_等等。

      如果你有一个真正的类属性,那么就不需要创建属性,只创建一个字段。

      【讨论】:

        【解决方案3】:

        财产本身是公开的。编译器为您的属性生成私有字段。由于 MSIL 本身不支持自动实现的属性。但是由于私有字段是由编译器生成的,所以您不必直接处理它们。

        Brad Abrams 的《Framework Design Guidelines 2nd edition》是一本关于命名约定的好书。 link

        执行命名约定的好工具是Stylecop

        【讨论】:

          【解决方案4】:

          字段/属性:

          如果您只是在我的示例中使用“get,set”,那么您是对的,应该有什么区别,但是,如果有人调用该属性或设置该属性,您可能会执行一些额外的任务。也许您会检查设置属性或更新对象的某些内部状态。

          【讨论】:

            猜你喜欢
            • 2015-11-21
            • 1970-01-01
            • 1970-01-01
            • 2010-11-18
            • 1970-01-01
            • 2012-12-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多