代码之家  ›  专栏  ›  技术社区  ›  Dunowen

VB代码到C代码的转换#

  •  0
  • Dunowen  · 技术社区  · 11 年前

    我是C#的新手,我也想让我以前的VB程序也在C#中运行。我对VB的byRef有点问题,我不能把它翻译成C#。

    下面是我在VB中的代码:

    Sub LepesEllenorzes(ByRef Gomb1 As Button, ByRef Gomb2 As Button)
        If Gomb2.Text = " " Then 'if a button is empty
            Gomb2.Text = Gomb1.Text 'change the numbers on them
            Gomb1.Text = " "
        End If
    End Sub
    

    这是我在C#中的代码,但不能正常工作:

    public Lépés(ref Button but1, ref Button but2)
    {
           if (but2.Text == "")
           {
                    but2.Text = but1.Text;
                    but1.Text = "";
           }                
    }
    

    代码来自一个数字洗牌游戏,如果两个相邻按钮中的一个是空的,那么上面有数字的按钮会随着空按钮而改变位置。

    对不起我的英语,我希望你能理解我的问题。

    2 回复  |  直到 9 年前
        1
  •  1
  •   David    11 年前

    除非这是一个构造函数(我对此深表怀疑),否则您需要一个返回类型。如果没有任何回报, void 作品:

    public void Lépés(ref Button but1, ref Button but2)
    {
            if (but2.Text == "")
            {
                but2.Text = but1.Text;
                but1.Text = "";
            }                
    }
    

    第二,你不需要 ref 在这里:

    public void Lépés(Button but1, Button but2)
    {
            if (but2.Text == "")
            {
                but2.Text = but1.Text;
                but1.Text = "";
            }                
    }
    

    默认情况下,这些是引用类型,除非您有非常具体的理由使用它们,否则不应该默认为 裁判 参数。

        2
  •  0
  •   LoztInSpace    11 年前

    VB正在使用空格,而C#是一个空字符串。就是这样吗?