0

如何将以下 VB 代码转换为 C# 代码?

Set atDIOAOIPIsReady = _
atDIOGObjRepos.InsertOutputObjectIfNew(sIPIsReadyID, atDIOAOIPIsReady)

我的想法是:

atDIOAOIPIsReady -= atDIOGObjRepos.InsertOutputObjectIfNew(ref sIPIsReadyID,atDIOAOIPIsReady);

但它向我显示了以下错误:

  1. 最好的重载方法匹配

    ActivVTools._AVTDIOFObjectRepository.InsetOutputObjectIfNew(ref string, ref ActivVTools._IAVTDIOObject)
    

    有一些无效的论点。

  2. 参数 '1' 必须与 'ref' 关键字一起传递

  3. 参数“2”不能转换ActivVTools.AVTDIOActionObjectClassref ActivVTools._IAVTDIOObject
4

2 回答 2

1

根据文档(pdf),您需要首先创建一个 AVTDIOActionObjectClass 对象。在他们展示的示例中,他们设置了不需要的 Description 属性。

SET 关键字是 VB6 并已用于分配对变量的引用。现在有了 VB.NET,这不再使用/需要了。

C# 代码将是(请参阅ref第二个参数的关键字):

AVTDIOActionObjectClass atDIOAOIPIsReady=new AVTDIOActionObjectClass ();
atDIOAOIPIsReady= atDIOGObjRepos.InsertOutputObjectIfNew(ref sIPIsReadyID, 
                  ref atDIOAOIPIsReady);
于 2013-09-30T08:15:16.070 回答
0

尝试这个:

atDIOAOIPIsReady = atDIOGObjRepos.InsertOutputObjectIfNew(ref sIPIsReadyID, atDIOAOIPIsReady);
于 2013-09-30T06:24:38.233 回答