如何在c#中更改子程序中的操作?

如何在c#中更改子程序中的操作?,c#,forms,winforms,C#,Forms,Winforms,我写了一个代码,当我点击一个按钮时,会使picturebox移动。例如,右按钮使用以下代码: private void btnRight_Click(object sender, EventArgs e) { //move right if (stopThePlayer == true) { return; } else { x = x + speed; RightBoundary()

我写了一个代码,当我点击一个按钮时,会使picturebox移动。例如,右按钮使用以下代码:

    private void btnRight_Click(object sender, EventArgs e)
    {
    //move right
    if (stopThePlayer == true)
    {
        return;
    }
    else
    {
        x = x + speed;
        RightBoundary();
        MovingSubprograms();
    }
}

不要担心子程序。我想知道的是有一种方法我只能改变
x=x+速度零件。例如,在左侧按钮中,我想使其
x=x-speed
。所以基本上我只创建一个子程序,只修改代码。可能吗?谢谢。

您最好创建一个函数,该函数接受您想要更改的参数:

private void MovePlayer(int offset)
{
    //move right
    if (stopThePlayer == true)
    {
        return;
    }
    else
    {
        x = x + offset;
        RightBoundary();
        MovingSubprograms();
    }
}

private void btnRight_Click(object sender, EventArgs e)
{
   MovePlayer(speed);
}

private void btnLeft_Click(object sender, EventArgs e)
{
   MovePlayer(speed*-1);
}

位置属性是一个基本上是坐标的点。因此,从当前位置创建一个新点根据功能添加和减除x,并将位置属性设置为该点simpleYou不会创建“子程序”。您将创建另一个事件处理程序来处理btnLeft_Click事件,并执行您所说的操作(除了
x=x-speed
之外,所有代码都是相同的)。但实际上不要重复代码,将其放在单独的函数中……当然,这会将您带到@JohnKoerner answer。这很有意义。谢谢!