Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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# 走向",_字段=字段&引用;反对;this.field=field";_C#_C# 6.0 - Fatal编程技术网

C# 走向",_字段=字段&引用;反对;this.field=field";

C# 走向",_字段=字段&引用;反对;this.field=field";,c#,c#-6.0,C#,C# 6.0,我已经看到,现在大多数知名开发人员(如Lynda、Pluralsight等的开发人员,甚至作家)都更喜欢以下方法,而不是后一种方法: private IField _Field; publc MyClass (IField Field){ _Field = Field; } 通过这种方法: private IField Field; public MyClass(IField Field){ this.Field = Field; } 我知道这背后一定有原因,但我不明白为什么

我已经看到,现在大多数知名开发人员(如Lynda、Pluralsight等的开发人员,甚至作家)都更喜欢以下方法,而不是后一种方法:

private IField _Field;
publc MyClass (IField Field){
    _Field = Field;
}
通过这种方法:

private IField Field;
public MyClass(IField Field){
    this.Field = Field;
}
我知道这背后一定有原因,但我不明白为什么

由于这种趋势在C#6发布时就开始了,我想原因可能是与Roslyn编译器有关,但在谷歌上找不到任何东西


如果有人能详细说明第一种方法可能比第二种方法有哪些优势,我将不胜感激

> P>这只是一个命名约定——许多来自C和C++背景的人习惯于这个约定,因为它很清楚地说明了一个字段是一个字段,它在这些语言中是不容易看见的(给定了它们被发明时存在的IDE)。
由于C#特别是Visual Studio在识别成员及其范围方面提供了大量帮助,因此不太需要这样做。

ReSharper的默认样式是什么?我打赌这会对人们的行为产生重大影响……对不起,我正要编辑您的帖子,因为您的代码示例包含错误,但我不知道编辑它们的目的是什么?我在C#中见过的任何人都不会将字段命名为“_field”,而是命名为“_field”。与参数相同。。。Field->Field。假设你在一段1k代码的底部,你看到
这个。Field
-你能一眼看出这是公共的还是私人的吗?这个字段怎么样?这就是我的论点(尽管我不确定这是否足以说服我)。不过,我倾向于明确说明这一点。我倾向于认为下划线前缀(a)难看,(b)过分依赖可能被打破的约定,(c)类似于“匈牙利”符号。如果它卷土重来的话,我很失望。我想我给出的唯一艰难的建议是——选择一个对你有意义的,然后在整个项目中坚持下去。如果你不一致,它会让你的代码不可能理解。C++中的标识符是否引用成员变量并不容易?为什么呢你需要详细说明一下。对于C来说更是如此,因为C没有classes@UnholySheep-我的观点是,这种约定起源于这些语言,为了在视觉上区分字段与局部变量、参数等…可能与JavaScript变得越来越流行有关-因为这种语言没有可访问性修饰符,很多人使用下划线规则来表示私有内容。@JoeClay-在JavaScript中,无论是在网站上还是在库中,都没有看到过这种规则。