111,092
社区成员




class Person {
public int Age {
get {
return 3;
}
set { }
}
}
Person p1 = new Person();
p1.Age = 30;
p1.Age++;
Console.Write(p1.Age);//输出3
IL_0001: newobj UserQuery+Person..ctor
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: ldc.i4.s 1E
IL_000A: callvirt UserQuery+Person.set_Age
IL_000F: nop
IL_0010: ldloc.0
IL_0011: dup
IL_0012: callvirt UserQuery+Person.get_Age
IL_0017: ldc.i4.1
IL_0018: add
IL_0019: callvirt UserQuery+Person.set_Age
IL_001E: nop
IL_001F: ldloc.0
IL_0020: callvirt UserQuery+Person.get_Age
IL_0025: call System.Console.Write
Person.get_Age:
IL_0000: nop
IL_0001: ldc.i4.3
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
Person.set_Age:
IL_0000: nop
IL_0001: ret
你看IL代码,set了几次age,没用,最终 get_Age还是返回3
var age=p1.Age++;
Console.Write(age);//输出3
输出4