我如何将此 vb.net 代码转换为 c# 代码?

我如何将此 vb.net 代码转换为 c# 代码?


 Public Function SetPiece(ByVal strGlobal As String, ByVal strNodes As String, ByVal strCode As String, ByVal intPiece As Integer, ByVal strNewVal As String) As Boolean

        Initialize()

        If strGlobal = "" Or strNodes = "" Or strCode = "" Then SetPiece = False

        SetPiece = mobjUtility.SetPiece(strGlobal, strNodes, strCode, intPiece, strNewVal)

    End Function

我试过这段代码,但出现错误


public bool SetPiece(string strGlobal, string strNodes, string strCode, int intPiece,string strNewVal )

        {

            bool setPiece = true;

            if (strGlobal == "" || strCode == "" )

            {

                setPiece = false;

                setPiece = mobjUtility.SetPiece(strGlobal, strNodes, strCode, intPiece, strNewVal);

            }

            else if (strNodes == "")

            {

                setPiece = false;

            }

            return setPiece;

        }

错误是在 SetPiece


我解决了这里的代码:


public static bool SetPiece(string strGlobal, string strNodes, string strCode, int intPiece, string strNewVal)

        {

            

            Initialize();

            if (((strGlobal == "")

                        || ((strNodes == "")

                        || (strCode == ""))))

            {

                return false;

            }


            var obj = mCache.Static("AGSP.UTILS");

            string test = obj.SetPiece(strGlobal, strNodes, strCode, intPiece, strNewVal);

            return obj;

        }


蓝山帝景
浏览 211回答 3
3回答

素胚勾勒不出你

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);}

HUX布斯

实际上,您的原始 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);}
打开App,查看更多内容
随时随地看视频慕课网APP