为什么我得到“不包含带0参数的构造函数”错误? C#
在我的表单加载,我有这个代码:
private void Form1_Load(object sender, EventArgs e) { CharityCyclists cyclist1 = new CharityCyclists(); CharityCyclists cyclist2 = new CharityCyclists("a", 1, "Finished", 0, 0, 0, "One Wheel", 1, 500); cyclist1.Type = "Novelty Charity Cyclist"; cyclist1.Number = 1; cyclist1.Finished = "Not Finished"; cyclist1.Hours = 0; cyclist1.Mins = 0; cyclist1.Secs = 0; cyclist1.Bicycle = "Tricycle"; cyclist1.Wheels = 3; cyclist1.FundsRaised = 300; }
但是,我收到一条错误,说“’CycleEvent.CharityCyclists’不包含带0参数的构造函数”,它说错误与代码的这一部分有关:
CharityCyclists cyclist1 = new CharityCyclists();
这是我的CharityCyclists类:
class CharityCyclists : Cyclists { private string bicycle; private int wheels; private double fundsRaised; public string Bicycle { get { return bicycle; } set { bicycle = value; } } public int Wheels { get { return wheels; } set { wheels = value; } } public double FundsRaised { get { return fundsRaised; } set { fundsRaised = value; } } public CharityCyclists(String type, int number, String finished, int hours, int mins, int secs, string bicycle, int wheels, double fundsRaised) : base(type, number, finished, hours, mins, secs, fundsRaised) { this.bicycle = bicycle; this.wheels = wheels; this.FundsRaised = fundsRaised; } public override string ToString() { return base.ToString() + " riding a " + bicycle + " with " + wheels + " wheels" ; } }
谢谢!
这是因为CharityCyclists
类没有不带参数的构造函数。
如果您没有定义其他构造函数 ,C#编译器将为您生成默认构造函数 。 如果您自己定义构造函数(就像您一样),C#编译器将不会生成默认构造函数。
如果要允许在没有参数的情况下构造CharityCyclists
,请将此代码添加到类中:
public CharityCyclists() {}
当您为接受参数的类提供构造函数时,编译器不再创建空构造函数。
因此,您不能调用空构造函数,因为它不存在。 您需要显式编写在类的代码中带有0个参数的构造函数。
您没有不带参数的consturctor。
你需要添加
public CharityCyclists() { this.bicycle = "bike"; this.wheels = 2; this.FundsRaised = 0; }
或类似的东西
当您创建不包含0参数的构造函数时,您将自动删除默认构造函数 。 您应该创建一个新的默认构造函数(没有参数),这将解决问题。
如果您没有任何构造函数,C#将隐式为您创建一个空构造函数。 它在function上和你写的一样:
public CharityCyclists() { }
但是,只有在没有构造函数的情况下才会执行此操作。 你有一个,所以这不会发生。 您需要显式创建不带参数的构造函数。
您没有该类没有参数的构造函数。 您拥有的唯一构造函数需要参数。 将此添加到您的class级:
public CharityCyclists() { }
如果声明构造函数类,则不会自动获取默认构造函数。 您需要创建一个无参数构造函数来解决问题,或者调用接受参数的构造函数。
将其添加到CharityCyclists
类:
public CharityCyclists() { }
您无法对该行进行编码:
CharityCyclists cyclist1 = new CharityCyclists();
除非你有那个构造函数。
在.NET中,如果没有声明其他构造函数,则隐式存在no args(无参数)构造函数。 一旦声明了带参数的构造函数,您还必须显式声明另一个没有参数的构造函数,以便代码继续编译。
你试图将没有任何参数的charistCyclists类的实例实例化为cyclist1 – 这需要一个没有参数的构造函数。
但是CharityCyclists类的定义只有一个带有9个参数的构造函数。 由于该构造函数需要9个参数,因此cyclist1将不匹配该构造函数。 你需要一个不带参数的构造函数,如:
上述就是C#学习教程:为什么我得到“不包含带0参数的构造函数”错误? C#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public CharityCyclists() { this.bicycle =""; this.wheels = 0; this.FundsRaised = 0.0; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/983071.html