为什么这种语法错了?不能将GET和SET用于行中的属性

Sae*_*ani 2 c# field declaration

我必须定义很多字段,我不能这样做:

public double d1, d2, d3, d4, d5, d6 {get;set;} //does not work
Run Code Online (Sandbox Code Playgroud)

相反,我必须这样做

public double d1 { get; set; } public double d2 { get; set; } //and so on
Run Code Online (Sandbox Code Playgroud)

但在私人领域我们有:

private double d1, d2, d3, d4 = 0; //Works
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么它不起作用.也许somone可以解释一下吗?有办法吗?

更新: 似乎很多复制粘贴让我搞砸了我的知识,忘记了Fields&Properties之间的区别.无论如何在第一行我的意思是一切应该是属性

Geo*_*ett 7

在第一行会出现歧义; 你想d1,以d5将属性或字段(其中2个不同的东西).为了避免这个问题,根本不允许这样做.


请注意以下内容:

double field;
double property {get; set;}
Run Code Online (Sandbox Code Playgroud)


Lar*_*rry 7

属性是函数调用,你不能用这种方式给它们一个默认值.请改用类构造函数或其他函数.

这是在Visual Studio中更快地输入的快速提示.输入字段:

public int a;
public int b;
public int c;
public int d;
Run Code Online (Sandbox Code Playgroud)

然后键入{ get; set; }并剪切到剪贴板CTRL + X.

选择所有分号,直至保持ALT键和鼠标左键同时按下

然后粘贴CTRL + V:TA-DA!

public int a { get; set; }
public int b { get; set; }
public int c { get; set; }
public int d { get; set; }
Run Code Online (Sandbox Code Playgroud)

  • 或者使用代码片段 - 键入prop然后选项卡两次 - 应自动扩展到属性. (2认同)