2012-03-18 4 views
0

こんにちは私はカメラを使用するチュートリアルを見ています。問題はそれらがC#にあり、VBに入る必要があるということだけです。私はコンバータを使用していますが、正しく変換しません。ここでこれらのメソッドをC#からVB.net(Windows Phone 7)に変換する方法

private void VideoCamera_Initialized(object sender, object eventArgs) 
{ 
    if (Initialized != null) 
    { 
     Initialized.Invoke(this, new EventArgs()); 
    } 
} 

public bool LampEnabled 
{ 
    get { return (bool)_videoCameraLampEnabledPropertyInfo.GetGetMethod().Invoke(_videoCamera, new object[0]); } 
    set { _videoCameraLampEnabledPropertyInfo.GetSetMethod().Invoke(_videoCamera, new object[] { value }); } 
} 

変換されたコードとエラーです:

Private Sub VideoCamera_Initialized(sender As Object, eventArgs As Object) 
    If Initialized IsNot Nothing Then 
     Initialized.Invoke(Me, New EventArgs()) 
    End If 
End Sub 

Public Property LampEnabled() As Boolean 
    Get 
     Return CBool(_videoCameraLampEnabledPropertyInfo.GetGetMethod().Invoke(_videoCamera, New Object(-1) {})) 
    End Get 
    Set(value As Boolean) 
     _videoCameraLampEnabledPropertyInfo.GetSetMethod().Invoke(_videoCamera, New Object() {value}) 
    End Set 
End Property 

エラー:

エラー2 'Publicイベント初期化(オブジェクト、System.EventArgsとして電子として送信者)' されますイベントであり、直接呼び出すことはできません。イベントを発生させるには、RaiseEventステートメントを使用します。

第2の方法に関しては、エラーがなくても正しく変換されているようには見えません。

+2

なぜいけないのでしょうか?どのようなエラーが出ますか?変換されたコードを表示してください。 – SLaks

+0

Iveは変換されたコードとエラーを追加しました – Matt9Atkins

答えて

2

エラー状態として、RaiseEventを使用する必要があります。実際にはイベントであるのか、それともデリゲートであるのかは分かりません。もちろん、VB.NETは驚くべき言語なので、Is NothingチェックやNew Object(-1) {}New Object()の部分は{value}の前には必要ありません。

Private Sub VideoCamera_Initialized(sender As Object, eventArgs As Object) 
    RaiseEvent Initialized(Me, EventArgs.Empty) 
End Sub 

Public Property LampEnabled() As Boolean 
    Get 
     Return CBool(_videoCameraLampEnabledPropertyInfo.GetGetMethod().Invoke(_videoCamera, {})) 
    End Get 
    Set(value As Boolean) 
     _videoCameraLampEnabledPropertyInfo.GetSetMethod().Invoke(_videoCamera, {value}) 
    End Set 
End Property 
+0

エラーが発生しました。ここにあります:http://i40.tinypic.com/2ro0pye.jpg – Matt9Atkins

+0

@ Matt9Atkins:おそらく翻訳の問題ではありません。 – Ryan

+0

元のC#コードでエラーが発生しません – Matt9Atkins

0

RaiseEvent Initialized(Me, EventArgs.Empty) 
に変更し、それを
+0

'RaiseEvent'は関数ではありません。括弧は 'Initialized'の後に続きます。 – Ryan

+0

ありがとうございます。私は長い間、VBを行っていない(感謝して...) – SLaks

関連する問題