私はvb.netを初めて使い、vb.netでwin CEアプリを構築しようとしています。ハンドヘルドデバイスのSDKはC#にあり、これをオンラインコンバータでvb.netに変換しました。以下 は、C#のコードです:vb.netのデリゲートを使用
としてvb.netに変換public class DecodeEventArgs : EventArgs
{
private string barcode;
private byte type;
public DecodeEventArgs(string barcodeData, byte typeData)
{
barcode = barcodeData;
type = typeData;
}
public string Barcode
{
get { return barcode; }
set { barcode = value; }
}
public byte Type
{
get { return type; }
set { type = value; }
}
}
:C#のから
私の変換でPublic Class DecodeEventArgs
Inherits EventArgs
Public barcode As String
Public type As Byte
Public Sub New(ByVal barcodeData As String, ByVal typeData As Byte)
barcode = barcodeData
type = typeData
End Sub
Public Property pBarcode() As String
Get
Return barcode
End Get
Set(ByVal value As String)
barcode = value
End Set
End Property
Public Property pType() As Byte
Get
Return type
End Get
Set(ByVal value As Byte)
type = value
End Set
End Property
End Class
あなたが私に見るように、私は、プロパティの名前に「P」を追加しましたvb.netコードIは
バーコードがすでにこのクラスのパブリック文字列として宣言されていると、エラーがあったので
それは私の問題の一部である場合、私はよく分からないが、私の本当の問題は、彼らがこのコードでクラスを呼び出すために.BeginInvokeを使用し、フォームに、次のとおりです。私はvb.netに変換
void scanner_DecodeEvent(object sender, DecodeEventArgs e)
{
Win32.sndPlaySound(Properties.Resources.Scan, Win32.SND_ASYNC | Win32.SND_MEMORY);
this.BeginInvoke((Action<string>)delegate(string barcode)
{
scanCount = 0;
ListViewItem item = new ListViewItem(new string[] { barcode });
lstView.Items.Insert(0, item);
}, e.Barcode);
}
次のように:
Private Sub scanner_DecodeEvent(ByVal sender As Object, ByVal e As DecodeEventArgs)
PlaySound()
Me.BeginInvoke(DirectCast(Barcode As String))
scanCount = 0
Dim item As New ListViewItem(New String() {barcode})
lstView.Items.Insert(0, item)
End Sub
これは、バーコードが宣言されていないというエラーです。これは私が立ち往生している場所です。事前に助けてくれてありがとう
ありがとう@Visual Vincent。もっときれいに見えますが、Sub()の下に「Expression Expected」と書かれています。また、 "End Sub"の後ろにも ")"を付けました。 –
@ PercyKumah:どの.NET Frameworkバージョンをターゲットにしていますか?また、自分の投稿で誰かを "@"する必要はありません。 :) –
'End Sub'の後の括弧は、' Me.BeginInvoke'を閉じるのでそこになければなりません。 –