3 回答
TA貢獻1827條經驗 獲得超9個贊
public bool SetPiece(string strGlobal, string strNodes, string strCode, int intPiece, string strNewVal)
{
Initialize();
if (strGlobal == "" | strNodes == "" | strCode == "")
SetPiece = false;
SetPiece = mobjUtility.SetPiece(strGlobal, strNodes, strCode, intPiece, strNewVal);
}
TA貢獻1876條經驗 獲得超6個贊
實際上,您的原始 VB 代碼有一個您可能不知道的缺陷。分配SetPiece = False無效。VB 允許對方法名臨時變量賦值,但該函數此時不會返回。如果沒有遇到實際的“Return”語句,則在函數退出時End Function(遇到或第一個時Exit Function)返回臨時 SetPiece 變量的值。在您的示例中,只有對 SetPiece 的最終分配是相關的??梢酝ㄟ^將“If”更改為“If/Else”來修復原始缺陷。
實際的 C# 等價物,原始缺陷更明顯一點是:
public bool SetPiece(string strGlobal, string strNodes, string strCode, int intPiece, string strNewVal)
{
bool tempSetPiece = false;
Initialize();
if (string.IsNullOrEmpty(strGlobal) || string.IsNullOrEmpty(strNodes) || string.IsNullOrEmpty(strCode))
tempSetPiece = false; //no effect
return mobjUtility.SetPiece(strGlobal, strNodes, strCode, intPiece, strNewVal);
}
- 3 回答
- 0 關注
- 250 瀏覽
添加回答
舉報
