class Program
{
static void Main(string[] args)
{
var a = new A()
{
b = new B()
{
name = "1"
}
};
//错误地方
a.b.name = "1";
}
}
public class A
{
public B b { get; set; }
//如果是这样写则不会出错
//public B b;
}
public struct B
{
public string name;
}
会提示 无法修改“A.b”的返回值,因为它不是变量。想明白为什么会这样子
值类型,属性的get访问器拿到的是对象的副本,对该副本的字段进行操作不会反应到源对象上,是一个无效操作。https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/compiler-messages/cs1612
太感谢了