0

VB.NET インターフェイスを C# のインターフェイスに変換する際に助けが必要です。以下のコードは Event を定義し、それをメソッドで発生させます。

Public Event CampaignDetailSelected(ByVal listItem As ListItem) _
Implements ICampaignMaintenanceView.CampaignDetailSelected

...

RaiseEvent CampaignDetailSelected(DirectCast(lsbCampaignDetail.SelectedItem, ListItem))

そのためのインターフェースは次のとおりです。

Public Interface ICampaignMaintenanceView
    Event CampaignDetailSelected(listItem As ListItem)
    ...
End Interface

コンバーターを介して上記のインターフェイスをプッシュすると、イベントが変換されますが、C# では許可されていないデリゲートも含まれます。

誰でも私にヒントを与えることができますか?

4

2 に答える 2

1

これは、私が C# と VB.NET を比較して経験した多くの問題の 1 つです。私は C# が大好きですが、VB.NET はイベントをよりシンプルにします。

// Placed outside of the class
public delegate void CampaignDetailSelectedEventHandler(ListItem listItem);

// Test class to show to convert from vb.net to C# 
public class Test : ICampaignMaintenanceView
{
    public event CampaignDetailSelectedEventHandler CampaignDetailSelected; 


    protected virtual void OnCampaignDetailSelected(ListItem listItem)
    {
        if (CampaignDetailSelected != null)
        {
            CampaignDetailSelected(listItem);
        }
    }
}
于 2013-09-23T03:49:43.643 に答える