0
我不能像在早期的MS基本版本中那樣使用單個vbnet項目的不同文件中的subs/functions來傳遞結構作爲參數。
這裏的情況簡單的例子:通過文件/函數傳遞結構作爲參數
的Module1.vb
Imports System.IO
Structure mymultitry
Dim index As Integer
<VBFixedString(6)> Dim name As String
Dim weight As Double
End Structure
Module Module1
Public mysetupfile = "mysetup.dat"
Public Sub rwfile(ByVal rw As Integer, ByVal myrecord As Integer, ByVal mmt As mymultitry)
'EDIT: Thanks to SteveDog - proper line should be:
'Public Sub rwfile(ByVal rw As Integer, ByVal myrecord As Integer, ByRef mmt As mymultitry)
Dim fnum As Integer
fnum = FreeFile()
FileOpen(fnum, mysetupfile, OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Shared, Len(mmt))
If rw Then
FilePut(fnum, mmt, myrecord)
Else
FileGet(fnum, mmt, myrecord)
End If
FileClose(fnum)
End Sub
End Module
Form1.vb的
Public Class Form1
Dim mmt As mymultitry
Dim mmt1 As mymultitry
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With mmt
.index = 4
.name = "Helga"
.weight = 128.1445
End With
rwfile(1, 1, mmt) 'write
rwfile(0, 1, mmt1) 'read
'all zero here !?!
Debug.Print(mmt1.index)
Debug.Print(mmt1.name)
Debug.Print(mmt1.weight)
End Sub
End Class
文件 「mysetup.dat」 可達,數據被正確保存,我所看到的與HxD。 但閱讀部分似乎沒有按預期工作。
請在可靠的傳遞結構作爲參數的幫助,沒有太多的公共元素基於上面的例子。
嗨史蒂夫,不明白什麼是.Net IO的原因我很新的VB.Net。但通過參考傳遞我的結構,我的代碼按預期工作,謝謝。 –