-4

如何将 getter 和 setter 从一个类调用到另一个类?我必须从 Ball.cs 调用另一个名为 StartGame.cs 的类。我需要将它放在 StartGame.cs 中的计时器中。例如,在 Ball 类中。

public class Ball
{
    public int speedX { get; private set; }
    public int speedY { get; private set; }
    public int positionX { get; private set; }
    public int positionY { get; private 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(int newSpeedX)
    {
        speedX = newSpeedX;
        return newSpeedX;
    }

    public int setSpeedY(int newSpeedY)
    {
        speedY = newSpeedY;
        return newSpeedY;
    }

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

    public int setPositionY(int newPositionY)
    {
        positionY = newPositionY;
        return newPositionY;
    }
}

谢谢你。

4

4 回答 4

1

如果您想在不同的类中使用变量,则必须将该变量定义为公共的(如果您从其他类继承,则必须将其定义为受保护/受保护的内部)。

但是,像这样公开你的变量意味着公开你的类的实现。最好使用 get 和 set 访问器抽象这些东西并通过属性公开变量。

于 2013-05-22T09:19:53.967 回答
0

我相当肯定,你正在寻找的是这样的:

class StartGame
{
    void MyMethod()
    {
        Ball myBall = new Ball(0, 1, 2, 3);

        int speedX = myBall.speedX;       // == 0
        int speedY = myBall.speedY;       // == 1
        int positionX = myBall.positionX; // == 2
        int positionY = myBall.positionY; // == 3
    }
}

由于这些字段具有私有设置器,因此以下是不可能的:

myBall.speedX = speedX;

因为 setter 不可访问。
但是,您确实有公共 setter 方法:

myBall.setSpeedX(speedX); // this would work

...
老实说,我很困惑...您是否从某个地方复制粘贴此代码并且只是不知道如何使用它?
我相当肯定,任何可以编写此代码的人都不需要问这样一个基本问题。如果我误解了你的问题,我会删除这个答案。

于 2013-05-22T09:35:58.750 回答
0

如果您想从 C# 中的其他类调用变量,那么只需

Console.WriteLine(test.address);

注意一件事,它应该public

public class test
{
   public static string address= "";
}

这里是关于如何调用的小说明,希望您理解并根据您的需要进行修改。

于 2013-05-22T09:34:00.917 回答
0

你也可以把它写成一个字段:

private String somevar;

public String Somevar{
 get{ return this.somevar}
 set { this.somevar = value}
}
于 2013-05-22T11:14:07.880 回答