我原來從這個地址:http://csharpindepth.com/articles/chapter8/propertiesmatter.aspx,並由於某種原因,我不能得到我的頭。有人可以解釋我爲什麼Console.WriteLine(holder.Property.Value);輸出0.設置屬性沒有設置其內部屬性
void Main()
{
MutableStructHolder holder = new MutableStructHolder();
holder.Field.SetValue(10);
holder.Property.SetValue(10);
Console.WriteLine(holder.Field.Value); // Outputs 10
Console.WriteLine(holder.Property.Value); // Outputs 0
}
struct MutableStruct
{
public int Value { get; set; }
public void SetValue(int newValue)
{
Value = newValue;
}
}
class MutableStructHolder
{
public MutableStruct Field;
public MutableStruct Property { get; set; }
}
{get;組; }是問題。如果我使用公共MutableStruct屬性;此輸出10和10 –
由於屬性是使用隱藏的get/set方法實現的,並且結構是通過getter中的值返回的。因此,您對屬性所做的任何修改都不會在屬性包裝的字段上進行。 – Blorgbeard