假设你有这样的属性(property):
Person person1;
public Person Captin{
get{
return person1;
}
set{
person1 = value;
}
}
public void SomeFunction(){
Captin.name = "Hook"
}
在这种情况下,如果您在属性上设置名称,我们知道 Hook 的新名称将应用于 person1 的基础值。如果我们的实现有点不同怎么办说:
public Person Captin{
get{
return ReadCaptinFromDisk();
}
set{
WriteCaptinToDisk(value);
}
}
public void SomeFunction(){
Captin.name = "Hook"
}
在这种情况下,为了正确设置基础值,我们需要调用 Captin 的设置代码,作为分配给 Captin.name 的一部分。
我很想知道参数集代码是否会在字段赋值时调用集或在属性引用上调用方法。特别是对于这种需要将值传播到磁盘(等)的情况。
每次您访问您的属性 Captin 时,它都会从磁盘读取。但是,如果您更改属性“名称”,它将不会写入磁盘。如果你做类似的事情,它只会写入磁盘
public void SomeFunction() {
Person p = Captin;
p.name = "Hook";
Captin = p;
}
我是一名优秀的程序员,十分优秀!