为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
蓝山帝景 2021-08-22 15:51:37
我如何将此 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;        }
查看完整描述

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

}


查看完整回答
反对 回复 2021-08-22
?
HUX布斯

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

}


查看完整回答
反对 回复 2021-08-22
  • 3 回答
  • 0 关注
  • 210 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信