Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-使用自动实现的属性和命名约定_C# - Fatal编程技术网

C#-使用自动实现的属性和命名约定

C#-使用自动实现的属性和命名约定,c#,C#,使用自动执行的属性时,如 公共字符串MyProperty{get;set;} 这是伟大的,直到你来到命名公约 我对类级字段使用下划线 字符串MyProperty 因此,使用auto-implemented意味着不清楚变量是什么,它的作用域是什么 如果你明白我的意思,有什么想法吗 马尔科姆 编辑:由于属性是公共的,您也不想使用下划线。PascalCasing告诉您它的类级别和公共性。(看看这个)帕斯卡辛告诉你它的班级级别和公共级别。(看看这个)当您使用自动属性和现代IDE(如visual stud

使用自动执行的属性时,如

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

这是伟大的,直到你来到命名公约

我对类级字段使用下划线

字符串MyProperty

因此,使用auto-implemented意味着不清楚变量是什么,它的作用域是什么

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

马尔科姆


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

PascalCasing告诉您它的类级别和公共性。(看看这个)

帕斯卡辛告诉你它的班级级别和公共级别。(看看这个)

当您使用自动属性和现代IDE(如visual studio)时,根本不需要。如果使用自动属性和不同的可视性,intellisense将正常工作。编译器也会检查它

    public string SomeString { private set; get; }

    private string some2string;

    public string Some3string { set; get; }
这意味着SomeString只能在内部写入。您将无法获得类之外的属性。所以没有魔法等等


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

当您使用自动属性和现代IDE(如visual studio)时,您根本不需要。如果使用自动属性和不同的可视性,intellisense将正常工作。编译器也会检查它

    public string SomeString { private set; get; }

    private string some2string;

    public string Some3string { set; get; }
这意味着SomeString只能在内部写入。您将无法获得类之外的属性。所以没有魔法等等


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

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

Brad Abrams的《框架设计指南》第二版是一本关于命名约定的好书


执行命名约定的一个很好的工具是

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

Brad Abrams的《框架设计指南》第二版是一本关于命名约定的好书

实施命名约定的一个很好的工具是

字段/属性:

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

字段/属性:

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