我是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 = "";
}
}
代码来自一个数字随机游戏,如果两个邻居按钮中的一个为空,则进行检查,因此带有数字的按钮将使用空按钮改变位置。
对不起我的英语,我希望你能理解我的问题。
答案 0 :(得分:1)
除非这是一个构造函数(我非常怀疑),否则你需要一个返回类型。如果没有返回任何内容,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 = "";
}
}
默认情况下,这些是引用类型,除非您有非常具体的理由使用它们,否则不应默认使用ref
参数。
答案 1 :(得分:0)
VB正在使用空格而C#是一个空字符串。是吗?