有没有办法在方法之间做数学加法

本文关键字:方法 有没有 之间 | 更新日期: 2023-09-27 18:15:44

我想知道是否有任何方法可以在方法之间进行数学加法?代码如下:

From Main:(我需要计算,但我不能在方法之间进行计算)

Ball.setPositionY = Ball.setPositionY + Ball.setSpeedY;

From a Class:

public class Ball
    {
    public int speedX { get; set; }
    public int speedY { get; set; }
    public int positionX { get; set; }
    public int positionY { get; set; }
    public Ball(int speedX, int speedY, int positionX, int positionY)
    {
        this.speedX = speedX;
        this.speedY = speedY;
        this.positionX = positionX;
        this.positionY = positionY;
    }
    public void setSpeedX(int newSpeedX)
    {
        speedX = newSpeedX;
    }
    public void setSpeedY(int newSpeedY)
    {
        speedY = newSpeedY;
    }
    public void setPositionX(int newPositionX)
    {
        positionX = newPositionX;
    }
    public void setPositionY(int newPositionY)
    {
        positionY = newPositionY;
    }
}

有没有办法在方法之间做数学加法

你应该这样做:

public class Ball
{
    public int SpeedX { get; set; }
    public int SpeedY { get; set; }
    public int PositionX { get; set; }
    public int PositionY { get; set; }
    public Ball(int speedX, int speedY, int positionX, int positionY)
    {
        this.SpeedX = speedX;
        this.SpeedY = speedY;
        this.PositionX = positionX;
        this.PositionY = positionY;
    }
}
public class Program
{
    public static void Main(string[] args)
    {
        Ball ball1 = new Ball(1,1,1,1);
        Ball ball2 = new Ball(2,2,2,2);
        Ball ball3 = new Ball(3,3,3,3);
        ball3.SpeedX = ball1.SpeedX + ball2.SpeedX;
    }
}

让set方法也返回设置的值,或者添加一个get方法给您相同的值。但是…既然你想要这个,为什么不直接使用对象的公共属性呢?

所以,你的方法可以看起来像

public int setPositionX(int newPositionX)
{
    positionX = newPositionX;
    return newPositionX;
}

但是,既然你现在正在创建自己的getter和setter,而且你已经有了它们。使用公共属性,一切都应该没问题。

赋值后,只需返回该值。它会解决你的问题。如果你想使用方法。

例如

public int setSpeedX(int newSpeedX)
{
  speedX = newSpeedX;
  return speedX;
}

这就是属性的作用;你应该使用属性。

如果你指的是函数式编程意义上的加法,我不明白你的例子。

你的方法必须返回值才能添加它们,但是公共属性可以做你想做的。球。positionY =球。

因为你所有的方法都有void返回类型,所以没有办法"添加"它们。如果你想这样做,把你的方法的返回类型改为int

编辑

您可以"添加"具有int返回类型的方法,但结果不能是方法。

示例:

public int setPositionY(int newPositionY)
{
    positionY = newPositionY;
    return positionY;
}
public int setSpeedY(int newSpeedY)
{
    speedY = newSpeedY;
    return speedY;
}
positionY = setPositionY(/*new position*/) + setSpeedY(/*new speed*/);

试试下面的代码…

namespace Foo
{
    class Program
    {
    static void Main(string[] args)
    {
        Ball b = new Ball(1,2,3,4);
        //b.setPositionY() = b.setSpeedY() + b.setSpeedY();
       b.setPositionY(b.setSpeedX() + b.setSpeedY());            
    }
}
public class Ball
{
    public int speedX { get; set; }
    public int speedY { get; set; }
    public int positionX { get; set; }
    public int positionY { get; set; }
    public Ball(int speedX, int speedY, int positionX, int positionY)
    {
        this.speedX = speedX;
        this.speedY = speedY;
        this.positionX = positionX;
        this.positionY = positionY;
    }
    public int setSpeedX()
    {
        //speedX = newSpeedX;
        return 10;
    }
    public int setSpeedY()
    {
        //speedY = newSpeedY;
        return 20;
    }
    public int setPositionX()
    {
        //positionX = newPositionX;
        return 1;
    }
    public void setPositionY(int newPositionY)
    {
        positionY = newPositionY;
    }
}