.net のクラスで、id と set_id というプロパティを定義しようとするとコンパイルエラーが発生する。暗黙的に定義されるメソッド

以下のソースコードはコンパイルに失敗します。

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 とかさ。

1件のコメント

  • 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!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください