它用作属性的getter方法
来自 MSDN
属性结合了字段和方法的各个方面。对于对象的用户来说,属性似乎是一个字段,访问该属性需要相同的语法。对于类的实现者来说,属性是一个或两个代码块,代表一个 get 访问器和/或一个 set 访问器。get 访问器的代码块在读取属性时执行;set 访问器的代码块在属性被分配一个新值时执行。没有 set 访问器的属性被认为是只读的。没有 get 访问器的属性被认为是只写的。具有两个访问器的属性是可读写的。
与字段不同,属性不属于变量。因此,您不能将属性作为 ref(C# 参考)或 out(C# 参考)参数传递。
设置访问器
set 访问器类似于返回类型为 void 的方法。它使用一个名为 value 的隐式参数,其类型是属性的类型。在以下示例中,将 set 访问器添加到 Value 属性:
**When you assign a value to the property, the set accessor is invoked by using an argument that provides the new value**
例如考虑这个类
class DemoClass
{
private int value;
public Int32 Value
{
get
{
return value;
}
set
{
this.value = value;
}
}
}
如果查看反射器中的编译程序集,您会注意到
.class private auto ansi beforefieldinit DemoClass
extends [mscorlib]System.Object
{
.method public hidebysig specialname rtspecialname instance void .ctor() cil managed
{
.maxstack 8
L_0000: ldarg.0
L_0001: call instance void [mscorlib]System.Object::.ctor()
L_0006: ret
}
.property instance int32 Value
{
.get instance int32 ConsoleApplication1.DemoClass::get_Value()
.set instance void ConsoleApplication1.DemoClass::set_Value(int32)
}
.field private int32 value
}