なぜエラーは発生しませんか?私はメインprogrmファイル内のこの構造体のプライベートフィールドを変更しようとするとエラーが発生しますが、構造体実装では発生しません。構造体 - プライベートフィールドへのアクセス
public struct MyStruct
{
private int privateField;
public int MyField
{
get { return privateField; }
set { if (value >= 0) privateField = value; else value = 0 }
}
public void SomeMethod (MyStyruct s)
{
s.privateField = 10; // no error here.
}
}
偉大な答え(7分後に最善の答えを受け入れる)。 Questoion 2:privateFieldを使用してデータを高速に読み取る必要がありますか、MyField C#を使用すると読み込みを最適化しますか? – zgnilec
そのようなマイクロ最適化について心配する必要はありません。コピーコンストラクタを作成していない場合は、このプロパティを使用します。特にあなたのセッターには特別なロジックがあります。 – Osiris
MyFieldとは対照的に、privateFieldを使用することでパフォーマンスが向上するとは思いません。私が心配している限り、他のものよりも優先させる特定の理由(ゲッターやセッターの特別なロジック)がない限り、それはスタイルの問題です。 –