.net のクラスで、id と set_id というプロパティを定義しようとするとコンパイルエラーが発生する。暗黙的に定義されるメソッド
2015/02/04
以下のソースコードはコンパイルに失敗します。
Public Class Class1 Public Property id As Integer Public Property set_id As Integer End Class |
property 'id' は、同じ名前のメンバーと class 'Class1' で競合する 'set_id' を暗黙的に定義しています。
idというプロパティの暗黙的に作られるセッターの名前がset_idになるから、set_idというプロパティを追加で定義することはできないらしい。
本来、というか通常の場合であれば、プロパティの命名規則(アッパーキャメルケース)に従えば、Id と SetId を定義することになるから、この問題には遭遇しない。
なんでこんなエラーに遭遇したかというと、id と set_id というカラムを持つテーブルのデータセット(xsd)を作ろうとした時に、 エラーが出てはまったからでした。
この制限に遭遇するのはレアな条件だろうけど、.netのプロパティの仕様として、暗黙的に定義されるシンボルはもうちょっと競合しにくい名前にすべきだったんじゃないかね。___set_id とかさ。
you are really a good webmaster. The website loading pace is incredible. It seems that you’re doing any unique trick. Also, The contents are masterpiece. you have performed a great task on this matter!