|
分類:[.NET 全般]
はじめまして。
VB6を少しかじってVB2010を勉強中の初心者です。
下のコードで 構造体【TasuStructure.myCalc()、KakeruStructure\myCalc()】から
Class1 の 非共有メンバ 変数 _X と 変数_Y を参照したいのですが矢印の箇所で、
「非共有メンバを参照するには、オブジェクト参照が必要です。」
とエラーが表示されます。
Shared を記述すると参照はできたのですが、myCal1とmyCal2 の値が同じになるのでダメでした。
また、MyCalc に引数として x と y を値渡しすれば思ったような動作はできるのですが
何故同じクラスの _X _Y を構造体内で参照できないか分かりません。
どのように記述すれば参照できますか?
宜しくお願いします。
========================================================
Public Class Form1
Private myCal1 As Class1
Private myCal2 As Class1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim ans As Integer
With myCal1
ans = .Tasu.MyCalc
MsgBox(CStr(ans))
ans = .Kakeru.MyCalc
MsgBox(CStr(ans))
End With
With myCal2
ans = .Tasu.MyCalc
MsgBox(CStr(ans))
ans = .Kakeru.MyCalc
MsgBox(CStr(ans))
End With
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
myCal1 = New Class1
myCal2 = New Class1
myCal1._X = 2
myCal1._Y = 3
myCal2._X = 0
myCal2._Y = 0
End Sub
End Class
Public Class Class1
Public _X As Integer
Public _Y As Integer
Public Tasu As TasuStructure
Public Kakeru As KakeruStructure
Public Structure TasuStructure
Public Function MyCalc() As Integer
Return _X + _Y ' ←非共有エラー
End Function
End Structure
Public Structure KakeruStructure
Public Function MyCalc() As Integer
Return _X * _Y ' ←非共有エラー
End Function
End Structure
End Class
========================================================
|