プロジェクトの外側に公開できないエラー
- 題名: プロジェクトの外側に公開できないエラー
- 著者: SA
- 日時: 2009/03/09 14:51:42
- ID: 24159
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: プロジェクトの外側に公開できないエラー
- 著者: Hongliang
- 日時: 2009/03/09 15:12:47
- ID: 24160
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: プロジェクトの外側に公開できないエラー
- 著者: SA
- 日時: 2009/03/10 10:28:01
- ID: 24166
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: プロジェクトの外側に公開できないエラー
- 著者: よねKEN
- 日時: 2009/03/10 12:41:13
- ID: 24168
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
GPIBで測定器を制御する自動測定システムを作っています。測定場所が2カ所
有るのですが、それぞれ違うプログラムを作ると管理がしにくい為、同じプログ
ラムを走らせ、ドロップダウンリストでどの測定場所で測るのかを切り替えられ
るようにしたいと思っています。
測定器毎にコマンドや処理が微妙に違うので、測定器毎にクラスを作り、それ
を実行時にドロップダウンリストで切り替えればいいかと思い、次のようなプロ
グラムを作りました。
'------------------------------------------------------------------
Public Class Class1
Public Overridable Function GetData(ByVal d As strc) As Integer
' データ取得処理
Return 1
End Function
Public Sub Init()
' イニシャライズ
End Sub
End Class
'------------------------------------------------------------------
Public Class Class2
Inherits Class1
Public Overrides Function GetData(ByVal d As strc) As Integer
' データ取得処理
Return 2
End Function
End Class
'------------------------------------------------------------------
Module Module1
Public Structure strc
Public i As Integer
Public d As Double
ReadOnly Property GetNum()
Get
Return i
End Get
End Property
End Structure
Public Data As strc
Public cls As Object
End Module
'------------------------------------------------------------------
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Select ComboBox1.SelectedIndex
Case 0
cls = New Class1
Case 1
cls = New Class2
End Select
Debug.Print(cls.GetData())
End Sub
End Class
'------------------------------------------------------------------
ところが、クラス内のFunctionプロシージャの所で、「'd' は型 'Module1.strc'
を class 'Class1' 経由でプロジェクトの外側に公開できません。」というエラ
ーが出てしまいます。MSDNによるとアクセスレベルが違う為に起こると書いてあ
るのですが、どちらもPublicなので問題ないと思うのですが何が違うのでしょう。
FunctionをFriendにするとエラーは出なくなりますが、今度は実行時に
MissingMemberExceptionが出てしまいました。根本的に考え方が間違っているの
か、単に宣言の仕方が悪いのか判りません。どうしたらいいのか、ご指導下さい
。