こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プロパティのアクセス修飾子

オート・インプリメント・プロパティで、

Property Prop2 As String = "Empty"

と書いた場合の、Propertyのアクセス修飾子はPublicになるのでしょうか?

あるVBの記述で、

Private CurrentValue As Integer
Private Property Current As Integer
Get
Return CurrentValue
End Get
Set(ByVal value As Integer)
CurrentValue = value
   その他諸々の記述
  End Set
End Property

というのがあるのですが、外部から、

Current += 1

などのようにアクセスしています。
この場合、Property Current As Integer のアクセス修飾子がPrivateになっているのですが、
Public とした場合と何が違うのでしょうか?
ちなみに両方でやってみましたが、動作は変わりませんでした。

御経験のある方、御教示願えたらと思います。

投稿日時 - 2013-01-04 07:05:51

QNo.7874583

すぐに回答ほしいです

質問者が選んだベストアンサー

>とあります。この場合、アクセス修飾子を省略すると、PropertyのCurrent変数はPrivate扱いという理解でいいのでしょうか?

そういうことになります。

>後、オート・インプリメント・プロパティ(自動実装プロパティ)の例を見ていると、Propertyの前のアクセス修飾子を省略したものが多いように思うのですが、何か意味とかあるのでしょうか?(ただ、前にアクセス修飾子を付けてもいいとは書かれているようです。)

私がその例を書いてるわけではないので意味があるのかどうかはわかりかねます。

投稿日時 - 2013-01-05 01:09:39

このQ&Aは役に立ちましたか?

7人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>クラスは、
>Public Class Form1
>クラス以外の諸々の記述
>End Class
>の中での記述になっていました。

「クラス以外の諸々の記述」と書かれていますが Public Class Form1 ~ End Class の間に記述されているものはClass Form1に関するものであってクラス以外の諸々の記述ということはないはずです。

>ここは、同一クラス内からのアクセスということで、Private にしているだけという理解でいいのでしょうか?

私が記述したわけではないので正確なところはわかりませんが、そのような理解でよいかと思います。

>クラス外の場合は、Public にして、最初に書いたようにこのPubic の記述は省略してもよいという理解でいいでしょうか?

Publicと省略したものは意味が異なりますよ。
その辺はVBのマニュアルや入門書でアクセス修飾子を調べれば載ってると思います。

投稿日時 - 2013-01-04 13:25:52

補足

ちょっと調べてみたのですが、

アクセス修飾子を指定しない場合、名前空間・クラス・構造体・モジュールのアクセシビリティはFriend、クラス・モジュールのメンバはPrivate、構造体のメンバはPublicになります。

とあります。この場合、アクセス修飾子を省略すると、PropertyのCurrent変数はPrivate扱いという理解でいいのでしょうか?

後、オート・インプリメント・プロパティ(自動実装プロパティ)の例を見ていると、Propertyの前のアクセス修飾子を省略したものが多いように思うのですが、何か意味とかあるのでしょうか?(ただ、前にアクセス修飾子を付けてもいいとは書かれているようです。)

よろしくお願い致します。

投稿日時 - 2013-01-04 19:43:14

ANo.1

>というのがあるのですが、外部から、

「外部から」というのは、そのCurrentプロパティがあるクラスとは別のクラスからという意味ですか?
Withステートメントでインスタンスを指定してるわけでもなく単純に Current += 1 と書けてるのなら同クラス内からのアクセスになりますけど。

投稿日時 - 2013-01-04 10:31:55

補足

すいません。

クラスは、
Public Class Form1
クラス以外の諸々の記述
End Class

の中での記述になっていました。

ここは、同一クラス内からのアクセスということで、Private にしているだけという理解でいいのでしょうか?

クラス外の場合は、Public にして、最初に書いたようにこのPubic の記述は省略してもよいという理解でいいでしょうか?

よろしくお願い致します。

投稿日時 - 2013-01-04 12:05:58

あなたにオススメの質問