環境はVB.Net 2003 です。
標準モジュール内でPublic宣言した構造体(BBB)があります。その構造体を、あるクラス(DDD)の中のプロシージャ(EEE)の引数の型として指定すると、型(BBB)の部分が波線になり、
『'FFF'は、Public Class 'DDD'の外にある Friend型を公開できません。』
と表示されます。どういうことなのでしょうか?
以下コードです。
---標準モジュール---
Module AAA
Public Structure BBB
Dim CCC as string
End Structure
End Module
--- あるクラス ---
Public Class DDD
〜省略〜
Public sub EEE(ByVal FFF as BBB)
〜
End sub
end Class
『Module AAA』という記述は、スコープ付きで記述すると、
『Friend Module AAA』という意味を持ちます。
Friendスコープになっているオブジェクト(BBB構造体)を、
より広いスコープのメソッド(DDDクラスのEEEメソッド)で
公開しようとしたため、エラーになっているのでしょう。
エラーを消すために、メソッド側のスコープを狭くするか、
もしくはモジュール側のスコープを広げるかしてみてください。
『Module AAA』→『Public AAA』
とすることで解決しました。
ありがとうございます。
キーワード?というものをもう少し勉強します。
>キーワード?というものをもう少し勉強します。
まずは変数の『スコープ』または『(同一)適用範囲』
ですね。
VBに限らずプログラムの入門書の30ページくらいまでには
必ず書いてあることです。MSDN とかにも載ってます。