C#WinForm-在课堂上使用给定的3个数字计算小时数

C#WinForm-在课堂上使用给定的3个数字计算小时数,c#,winforms,class,combobox,C#,Winforms,Class,Combobox,我正在创建一个简单的距离计算器。我有一个带有两个组合框的窗口窗体。第一个组合框的默认位置为Place1,第二个组合框的值为Place1、Place2和Place3 这是我班上的代码 public class classDistance { public string Places { get; set; } public int DistanceKm { get; set; } public static void Hours() { List<

我正在创建一个简单的距离计算器。我有一个带有两个组合框的窗口窗体。第一个组合框的默认位置为Place1,第二个组合框的值为Place1、Place2和Place3

这是我班上的代码

public class classDistance
{
    public string Places { get; set; }
    public int DistanceKm { get; set; }

    public static void Hours() { 
        List<string> Cities = new List<string>();
        Cities.Add("Place1");
        Cities.Add("Place2");
        Cities.Add("Place3");

        List<int> DestinationKm = new List<int>();
        DestinationKm.Add(10); // Place1 = 10Km
        DestinationKm.Add(20); // Place2 = 20Km
        DestinationKm.Add(30); // Place3 = 30Km

        return;
    }
}

//Place1 has the speed of 80kmph.
我该怎么做


提前谢谢你

当您创建方法
Hours()
static时,您只需通过类调用它,而无需创建任何实例,如下所示:

private void button1_Click(object sender, EventArgs e)
{
    ClassDistance.Hours();
}
但现在,您的方法只是填充列表,而不是实际计算小时数

UPD: 我认为最好使用字典来存储和获取案例中的数据:

var citiesDistance = new Dictionary<string, int>
{
    {"Place1", 10},
    {"Place2", 20},
    {"Place3", 30}
};
在那之后,你可以计算到达目的地所需的时间:

var speed = 80;
var hours = length/speed;

希望,我正确地理解了你的问题)

目前,你有一个位置列表和一个距离列表,这些位置和距离实际上并不相关

我要做的是创建一个包含地名和距离的新类,例如:

public class Destination
{
    public string Name {get;set;}
    public int DistanceKm  {get;set;}

    // ctor
    public Destination(String name, int distanceKm)
    {
        Name = name;
        DistanceKm = distanceKm;
    }

    public int getHours (int speed)
    {
        // do your calculation for the number of hours here
        return hours;
    }
}
然后,您可以通过构造函数使用目的地的名称和距离填充目的地,并使用getHours方法根据传入目的地的速度返回小时数


如果您正在处理多个目的地,您也可以创建一个列表

那么,先生,现在我如何根据hours方法()计算小时数?:)当然可以,先生。我会试试这个:)我会让你知道的,先生。先生,当我单击按钮时,什么也不会发生:(@mark,你定义了计算小时数的显示方式吗?你是在表单上显示它,还是在MessageBox中显示它?例如,在用户单击按钮时,我想在我表单内的MessageBox中显示它。:)有没有一种方法可以让我在同一堂课上做@N Wright?如果你想在同一堂课上做,那么最好使用goodday21的字典建议:)
var speed = 80;
var hours = length/speed;
public class Destination
{
    public string Name {get;set;}
    public int DistanceKm  {get;set;}

    // ctor
    public Destination(String name, int distanceKm)
    {
        Name = name;
        DistanceKm = distanceKm;
    }

    public int getHours (int speed)
    {
        // do your calculation for the number of hours here
        return hours;
    }
}