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

One Comment

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

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.