3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
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貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
實(shí)際上,您的原始 VB 代碼有一個(gè)您可能不知道的缺陷。分配SetPiece = False無效。VB 允許對(duì)方法名臨時(shí)變量賦值,但該函數(shù)此時(shí)不會(huì)返回。如果沒有遇到實(shí)際的“Return”語(yǔ)句,則在函數(shù)退出時(shí)End Function(遇到或第一個(gè)時(shí)Exit Function)返回臨時(shí) SetPiece 變量的值。在您的示例中,只有對(duì) SetPiece 的最終分配是相關(guān)的??梢酝ㄟ^將“If”更改為“If/Else”來修復(fù)原始缺陷。
實(shí)際的 C# 等價(jià)物,原始缺陷更明顯一點(diǎn)是:
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 關(guān)注
- 236 瀏覽
添加回答
舉報(bào)