据我了解,属性不能返回引用,并且由于结构是值类型,因此无法通过属性返回对结构的引用,这将启用:
public struct SomeStruct
{
public int SomeMember { get; set; }
}
class foo
{
private SomeStruct bar;
public SomeStruct Bar{ get { return bar; } set { bar = value; } }
}
//Somewhere else
foo f = new foo();
f.Bar.SomeMember = 42; //Error, this doesn't work
我必须求助于 setMemberOfSomeStruct() 还是有其他方法?
编辑:具体来说,我想避免一直为这样的结构调用 new 。我知道使用构造函数 SomeStruct(int),这会起作用:
f.Bar = new SomeStruct(42); //ugh