【发布时间】:2016-02-05 05:09:34
【问题描述】:
我截断了从 c# 转换为 vb.net 的代码。但是,vb.net 代码不允许我查询是否实例化了事件。这是c#代码:
public event EventHandler<TreeModelEventArgs> NodesInserted;
internal void OnNodeInserted(Node parent, int index, Node node)
{
if (NodesInserted != null)
{
TreeModelEventArgs args = new TreeModelEventArgs(GetPath(parent), new int[] { index }, new object[] { node });
NodesInserted(this, args);
}
}
它“确认”的具体行是:
if (NodesInserted!= null)
这是 vb.net 代码:
Public Event NodesInserted As EventHandler(Of TreeModelEventArgs) Implements ITreeModel.NodesInserted
Friend Sub OnNodeInserted(parent As Node, index As Integer, node As Node)
If NodesInserted IsNot Nothing Then
Dim args As New TreeModelEventArgs(GetPath(parent), New Integer() {index}, New Object() {node})
RaiseEvent NodesInserted(Me, args)
End If
End Sub
具体来说:
If NodesInserted IsNot Nothing Then
返回一个错误,说我应该使用 RaiseEvent,当然我已经在使用了。
我的问题是,我什至需要检查 null 吗?如果 C# 中的事件不存在,它怎么可能被调用?我想我应该删除“If”语句,但这是一个复杂的项目,我可能会遗漏一些东西。专家可以帮助我吗?
【问题讨论】: