.NET
のプロパティしかしながらIL
コードプロパティゲッターで第一級オブジェクトことになっているとセッターはget_
PropertyName意味とset_
PropertyName意味として実装されています。プロパティセッターとゲッターがget_Xメソッドとset_Xメソッドで衝突するのはなぜですか?
class Property
{
int Value { get { return 42; } }
int get_Value() { return 6 * 9; }
void set_Value(int i) { } // Error even though Value is a read only property
}
出力:
エラーCS0082:SOタイプ」:タイプ 'SO.Property' は既に同じパラメータ型
エラーCS0082で 'GET_VALUE' と呼ばれるメンバーを留保します。プロパティ 'はすでに同じパラメータタイプの' set_Value 'というメンバを予約しています
なぜ.NET
のignersは、ユーザーコードと衝突するかもしれない名前を使用することにしましたか?彼らは不正な文字を使用する可能性があります(Javaは内部クラスのものに$
を使用するため)。
get_Value()およびset_Value()の形式は、C#命名規則(http://msdn.microsoft.com/en-us/library/ms229045.aspx)にも適用されます。「アンダースコア、ハイフン、またはその他の英数字以外の文字を使用してください。 これはまさにこの問題が原因かもしれませんが、C#コードでこの形式を使用しないでください。 – alastairs