私はそれを理解し、プロパティが参照を返すことができず、構造体は値型なので、可能にするプロパティを介して構造体への参照を返す方法はありません。構造体への参照のプロパティ構文を有効にしますか?
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
変更可能な構造体は悪いので使用しないでください。不変の構造体を使用します。 – Servy
奇妙な。この悪いデザインはXNAでですか?これは4 intを持つstruct Rectangleを持っています。私は4つのintのうち2つだけを頻繁に更新する必要があります。これを行うたびに新しい四角形を作成する必要が本当にありますか? – TravisG
はい。新しい構造体を作成するのは高価な操作ではなく、非常に安価です。それが最初の場所で構造体を使用する理由のすべてです。 – Servy