C#将windows窗体与已创建的类和控制台链接
问题是:当用户单击Add时,如何将用户输入链接到特定的构造函数并创建对象 我如何创建我的项目: 我创建了一个控制台应用程序。名为car的类具有以下属性:C#将windows窗体与已创建的类和控制台链接,c#,winforms,console,C#,Winforms,Console,问题是:当用户单击Add时,如何将用户输入链接到特定的构造函数并创建对象 我如何创建我的项目: 我创建了一个控制台应用程序。名为car的类具有以下属性: 品牌名称 类型 里程 投产日期 数字板 马力 齿轮数 座位数 躯干体积 油耗 2个构造器:1个,除了座位数之外,其他都有。第二,除了齿轮的数量外,其他都有 根据档位或座椅数量增加燃油消耗量的方法 一切正常。我现在创建了一个windows窗体。将输出类型更改为windows窗体而不是控制台 对于windows窗体: 用户必须在两个选项中进行选
- 品牌名称
- 类型
- 里程
- 投产日期
- 数字板
- 马力
- 齿轮数
- 座位数
- 躯干体积
- 油耗
namespace Sportwagens {
public class Wagen
{
string Merk;
string Type;
int Aantalkm;
DateTime Ingebruiknamedatum;
string Nummerplaat;
int Pk;
int Brandstofverbruik;
public class Sportwagen : Wagen
{
int Aantalvitessen;
public Sportwagen(string merk, string type, int aantalkm, DateTime ingebruiknamedatum, string nummerplaat, int pk, int aantalvitessen, int brandstofverbruik)
{
Merk = merk;
Type = type;
Aantalkm = aantalkm;
Ingebruiknamedatum = ingebruiknamedatum;
Nummerplaat = nummerplaat;
Pk = pk;
Aantalvitessen = aantalvitessen;
Brandstofverbruik = brandstofverbruik;
}
public int vermeerderingbrandsotfverbruiksportwagen()
{
if (Aantalvitessen >= 6)
{
Brandstofverbruik += 2;
}
return Brandstofverbruik;
}
}
class Gezinswagen : Wagen
{
int Aantalzitplaatsen;
int Koffervolume;
public Gezinswagen(string merk, string type, int aantalkm, DateTime ingebruiknamedatum, string nummerplaat, int pk, int aantalzitplaatsen, int koffervolume, int brandstofverbruik)
{
Merk = merk;
Type = type;
Aantalkm = aantalkm;
Ingebruiknamedatum = ingebruiknamedatum;
Nummerplaat = nummerplaat;
Pk = pk;
Aantalzitplaatsen = aantalzitplaatsen;
Koffervolume = koffervolume;
Brandstofverbruik = brandstofverbruik;
}
public int vermeerderingbrandsotfverbruikgezinswagen()
{
if (Aantalzitplaatsen >= 7)
{
Brandstofverbruik += 1;
}
return Brandstofverbruik;
}
}
public Wagen()
{
}
public Wagen(string merk, string type, int aantalkm, DateTime ingebruiknamedatum, string nummerplaat)
{
Merk = merk;
Type = type;
Aantalkm = aantalkm;
Ingebruiknamedatum = ingebruiknamedatum;
Nummerplaat = nummerplaat;
}
如果用户在两个选项之间进行选择时实例化了“car”对象,则只需更改每个构造函数中参数的顺序(假设存在不同类型的参数) 例如,如果一个构造函数是:
public Car(string brandName, string type, double mileage ...)
{
...
}
另一个是:
public Car(string brandName, double mileage, string type ...)
{
...
}
您可以根据给定参数的顺序强制类使用其中一个参数。然而,这不是一个好的做法
根据您的描述,听起来您应该创建两个“子类”(SportsCar和FamilyCar),并使用继承来实现您的目标或组合。双击表单编辑器中的“Toevoegen”按钮。这将创建一个类似以下内容的方法:
private void button1_Click(object sender, EventArgs e)
{
}
在方法之外,声明“Wagen”类的实例,如下所示:
Wagen mijnWagen;
然后,在button_click方法中,初始化wagen对象的实例,如下所示:
if (//"Sportswagen is selected")
{
mijnWagen = new Sportwagen(merk, type etc. as filled in on form);
}
else
{
mijnWagen = new Gezinswagen(merk, type etc. as filled in on form);
}
现在,单击按钮时,对象mijnWagen将被初始化为他们选择的任何类型的汽车。谢谢。这对我帮助很大!还有一个问题,我有两个子类,Sportscar和Familycar。如果用户选择例如Sportscar并填写所有其他内容,单击Add,我如何使用用户输入声明和初始化对象?假设Sportscar继承自Car:在按钮单击功能之外声明Sportscar:Sportscar mySportsCar;然后函数应该是这样的:private void button1_click(…){mySportsCar=new Sportscar(brandName等);}根据需要输入参数。如果你把你的代码复制粘贴到上面的问题中,可能会有帮助,这样我就可以看到你在说什么了。我不确定我是否理解正确。因此,如果用户单击按钮,并在表单中插入用户的信息,我想创建一个对象。我知道如何创建一个对象,但我不知道如何使用表单中提供的信息创建一个对象。mySportsCar=newsportscar(用户插入的信息,但如何插入?)我已经在问题中添加了我的代码,并提供了一个链接,指向表单外观的图像。标识符是荷兰语的,如果它能帮你解决我的问题,我也许可以把它改成英语。再次感谢你,丹尼尔。