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

问题描述:

我写了一个代码,当点击一个按钮时,它会使图片框移动。例如,右键使用此代码:如何在c#中的子程序中更改操作?

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

不要担心子程序。我想知道的是有没有一种方法,我只能改变x = x + speed;部分。例如,在左边的按钮中,我想使它成为x = x - speed。所以基本上我只是创建一个子程序,只改变代码。那可能吗?谢谢。

+0

位置属性是一个点,这是基本的坐标。所以从当前位置创建一个新点并根据功能添加和减去x,并将位置属性设置为该点简单 – Ramankingdom

+0

您不会创建“子程序”。您将创建另一个处理btnLeft_Click事件的事件处理程序,并将执行您所说的内容(所有相同的代码,除'x = x - speed'外),但实际上不重复代码,将其放入单独的函数中。 ..当然,这会把你带到@JohnKoerner的答案。 – AgapwIesu

最好的办法是创建一个接受的,你想改变参数的函数:

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

这很有道理,谢谢! – Qedized