-1

我正在将一些 VBA 代码移植到 C# 中,并且在要移植的函数之一的开头是以下行:

 Dim sCA;

有什么方法可以找出我应该在 C# 中存储什么?我需要从中提取一个字符串,但是我正在使用的库中的方法返回一个数字,当我尝试使用 IndexOf() 时,它会混淆编译器。当我检查用于设置它的函数的参数列表时,我看到:

ReadValue([DataPoint As String], [intErrorMode As Integer = 0])

看到 C# 中没有ReadValue(),我现在有点卡住了,你可以扔给我的任何东西都会非常感激。

编辑:为那里发生的混乱道歉,这是完整的功能:

Sub CheckForPin(sSTB As String, sPIN As String, iSetTopBoxID As Integer)
Dim sCA_PopUp

sCA_PopUp = ReadValue("Fix32." & SCADA_NAME & "." & sSTB & CStr(iSetTopBoxID) & "_POPUP_CA" & ".F_CV", 1)
If InStr(1, UCase(sCA_PopUp), "PIN PROTECTED") <> 0 Then
    WriteValue sPIN, "Fix32." & SCADA_NAME & "." & sSTB & CStr(iSetTopBoxID) & "_MULTIPLE_CMD" & ".A_CV", 1
End If

Exit Sub
4

2 回答 2

1

似乎 ReadValue 正在返回一个字符串;所以 C# 是

void CheckForPin(...)
{
   string sCA_PopUp = ReadValue(...)
   if (sCA_PopUp.ToUpper().Contains("PIN PROTECTED"))
   {
      WriteValue(...)
   }
}
于 2012-07-23T15:44:23.070 回答
1

鉴于最初的程序员为所有变量添加了类型指示符(在本例中为“s”),因此可以安全地推断它确实是一个字符串。此外,我不确定 Dim sCA_PopUp 和 Dim sCA 是否指的是同一个变量,而您只是没有注意到这一点,但如果是这样,从正在进行的大量连接中,有进一步的证据表明它应该被解释为细绳。将其转换为 C# 时,请改用 StringBuilder。

于 2012-07-23T16:56:41.993 回答