C# 类和方法

C# 类和方法,c#,C#,我不知道该问什么。当我单击Form1上的加速按钮时,我创建了一个名为Car的类,我希望它加速5个增量。我需要使用从汽车类加速的方法来做到这一点。我以为我说得对,但什么都没用。我需要简单的答案,因为我是初学者 namespace Car_Class { class Car { public string _year; public string _make; public double _speed; public

我不知道该问什么。当我单击
Form1
上的加速按钮时,我创建了一个名为
Car
的类,我希望它加速5个增量。我需要使用从汽车类加速的方法来做到这一点。我以为我说得对,但什么都没用。我需要简单的答案,因为我是初学者

namespace Car_Class
{
    class Car
    {
        public string _year;
        public string _make;
        public double _speed;

        public Car(string year, string make, double speed)
        {
            _year = year;
            _make = make;
            _speed = 0;
        }

        public string Year
        {
            get { return _year; }
            set { }
        }

        public string Make
        {
            get { return _make; }
            set { }
        }

        public double Speed 
        {
            get { return _speed; }
            set { }
        }

        public double Accelerate()
        {
            return _speed += 5;
        }

        public double Brake()
        {
           return  _speed -= 5;
        }
    }
}
然后按钮

namespace Car_Class
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void accButton_Click(object sender, EventArgs e)
        {
            string _year = "";
            string _make = "";
            int _speed = 0;

            Car acc = new Car(_year, _make, _speed);

            acc.Accelerate();

            currentspeedListBox.Text = ???????
        }
    }
}

您的问题是每次单击按钮时都在创建一辆新车

您需要一辆属于表单成员的汽车

Form1和Car一样是一个类。向其添加类型为car的成员car(就在class语句之后)

在窗体的构造函数中

_car = new Car();
在click方法中

_car.Accelerate();

您需要设置currentspeedListBox.Text=acc.Speed.ToString()

您是否意识到,您不会看到速度增加,但只会看到5?当你撞到箱子(从0开始)时,你正在创造一辆新车,然后当你加速时,你将它增加5。一切完成后,汽车就会开走,如果你再次按下按钮,整个过程就会重新开始。(以速度0创建一辆新车,然后将其增加到5)

如果你想继续看到文本框的增加,你需要把汽车作为一个私有变量放在Form1中,或者你需要把你产生的速度(5)作为私有变量存储在方法之外

编辑:


我假设textbox,尽管它不是这样说的。ListBox是许多项的容器,因此它有一个items属性,其中包含所有内容。列表框的文本属性指的是当前在列表框中选择的文本。由于列表框中没有任何内容,因此不会选择(或显示)任何内容。您需要将项目添加到列表框中,在本例中为当前加速度。

不要将
set{}
s设为空。不工作是什么意思?如果您将
?????
更改为
acc.Speed.ToString()会发生什么?正确的设置是{u speed=value}还是value需要等于某个值?当我添加acc.speed.ToString()时,什么都不会发生+1-很高兴看到一个新手在发帖前尝试过一些东西。做得好,祝你编程顺利。我尝试了这个,但列表框中没有显示任何内容。谢谢你的努力!我想问你是用文本框还是列表框。如果它是一个列表框,您没有设置文本,但是您将在列表框中添加项目。我只是把上面的代码改成了一个列表框,你就是主人!谢谢你,我做到了!!我尝试了这个,但列表框中没有显示任何内容。谢谢你的努力!
private Car _car = new Car("","",0)

private void accButton_Click(object sender, EventArgs e)
{
     _car.Accelerate();
     currentspeedListBox.Items.Add(car.Speed.ToString());
}