C#中int a{{get int b=1+2;return b;}}这种用法和int a(){ int b=1+2;}有什么区别?什么时候使用get什么时候使用方法
时间: 2024-09-24 12:18:42 浏览: 27
在C#中,您的例子显示了两种不同的访问修饰符和成员声明方式:
1. `int a { get; int b = 1 + 2; return b; }`
这种写法实际上不是一个完整的函数定义,它实际上是C#语法错误。`get`关键字用于声明一个只读属性(Read-only Property),而不是一个独立的函数。在这种情况下,`get`后面应该跟着一个getter方法,用于获取属性值。然而,你提供的代码里,`b = 1 + 2`是在`get`块内部赋值,这不是标准的属性声明语法。如果想要表示一个返回整数的静态方法,应该像下面这样写:
```csharp
public static int A() {
int b = 1 + 2;
return b;
}
```
2. `int a() { int b = 1 + 2; return b; }`
这是一个简单的静态方法(Static Method)。这里定义了一个无参的整数方法`a()`,它的作用跟上面的例子一样,计算并返回值`1 + 2`。
何时使用`get`和何时使用方法:
- 使用`get`:当你需要声明一个可以通过某个名称访问的值(比如一个字段的读取版本),而且这个值不应该直接修改,应该提供一个获取方法,例如只读属性。比如`public double Height { get; }`。
- 使用方法:当你需要完成一些操作并返回结果时,使用普通方法更为合适。这些方法可能是有参的、无参的,也可以包含复杂的业务逻辑。
总的来说,如果你只是简单地想定义一个计算并返回值的函数,那么`int a() { ... }`更适合;如果你想声明一个属性,应该使用`get`和对应的`set`关键字(如果需要可写属性)。
阅读全文