gpt4 book ai didi

c# - 当您对属性的字段或属性进行分配时会发生什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:01 25 4
gpt4 key购买 nike

假设你有这样的属性(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;
}

关于c# - 当您对属性的字段或属性进行分配时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/305911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com