c#带参数的构造函数是如何工作的?
我不明白施工人员是如何工作的。我试图将这些图形从类引入主程序,但是每当我尝试在主程序上使用construtor时,它就会出现“类Fooditem不包含带2个参数的构造函数”。这是非常令人困惑的,因为我有一个名为c#带参数的构造函数是如何工作的?,c#,C#,我不明白施工人员是如何工作的。我试图将这些图形从类引入主程序,但是每当我尝试在主程序上使用construtor时,它就会出现“类Fooditem不包含带2个参数的构造函数”。这是非常令人困惑的,因为我有一个名为公共食品(字符串名称,int-numberserved)。我不明白为什么会出现这个消息,我不知道如何修复它。任何帮助都将不胜感激 class Program { static void Main(string[] args) {
公共食品(字符串名称,int-numberserved)
。我不明白为什么会出现这个消息,我不知道如何修复它。任何帮助都将不胜感激
class Program
{
static void Main(string[] args)
{
FoodItem firstfood = new FoodItem("Spagetti", 3);
Console.WriteLine("The First Food is '{0}' And it serves {1}", firstfood.Name, firstfood.NumberServed);
}
}
class FoodItem
{
string _name;
int _numberserved;
public void food(string name)
{
_name = name;
_numberserved = 0;
}
public void food(string name, int numberserved)
{
_name = name;
NumberServed = numberserved;
}
public string Name
{
get
{
return _name;
}
}
public int NumberServed
{
get
{
return _numberserved;
}
set
{
if (value > 4)
{
_numberserved = 4;
}
else
{
_numberserved = value;
}
}
}
}
构造函数应具有与类相同的名称,且无返回类型:
class FoodItem
{
string _name;
int _numberserved;
public FoodItem(string name)
{
_name = name;
_numberserved = 0;
}
public FoodItem(string name, int numberserved)
{
_name = name;
NumberServed = numberserved;
}
}
您将构造函数命名错误。将其更改为FoodItem,如下所示:
class FoodItem
{
string _name;
int _numberserved;
public FoodItem(string name)
{
_name = name;
_numberserved = 0;
}
public FoodItem(string name, int numberserved)
{
_name = name;
NumberServed = numberserved;
}
public string Name
{
get
{
return _name;
}
}
public int NumberServed
{
get
{
return _numberserved;
}
set
{
if (value > 4)
{
_numberserved = 4;
}
else
{
_numberserved = value;
}
}
}
}
如果类被称为
FoodItem
,那么构造函数也应该被称为FoodItem
,并且没有返回值:
public class FoodItem
{
public FoodItem()
{
// Do stuff
}
public FoodItem(string name, int numberserved)
{
// Do stuff
}
}
您可以使用:this
构造将构造函数链接在一起。它可以以任何方式工作:
public FoodItem()
{
// Do basic stuff
}
public FoodItem(string name, int numberserved) : this()
{
// Do other stuff
}
或
您所做的完全取决于您的应用程序。我已经修改了您的代码,现在可以使用了
class Program
{
static void Main(string[] args)
{
FoodItem firstfood = new FoodItem("Spagetti", 3);
Console.WriteLine("The First Food is '{0}' And it serves {1}", firstfood.Name, firstfood.NumberServed);
}
}
class FoodItem
{
string _name;
int _numberserved;
public void food(string name)
public FoodItem()
{
_name = name;
_numberserved = 0;
}
public void food(string name, int numberserved)
public FoodItem(string name, int numberserved)
{
_name = name;
NumberServed = numberserved;
}
public string Name
{
get
{
return _name;
}
}
public int NumberServed
{
get
{
return _numberserved;
}
set
{
if (value > 4)
{
_numberserved = 4;
}
else
{
_numberserved = value;
}
}
}
}
请让我知道您的想法或反馈
谢谢
karthik你的类名是什么?构造函数的名称应该与类名相同,你的类中没有任何构造函数。你的构造函数需要与类同名。你没有
公共食品(字符串名称,int-numberserved)
。如果你有,你会得到一个语法错误。
class Program
{
static void Main(string[] args)
{
FoodItem firstfood = new FoodItem("Spagetti", 3);
Console.WriteLine("The First Food is '{0}' And it serves {1}", firstfood.Name, firstfood.NumberServed);
}
}
class FoodItem
{
string _name;
int _numberserved;
public void food(string name)
public FoodItem()
{
_name = name;
_numberserved = 0;
}
public void food(string name, int numberserved)
public FoodItem(string name, int numberserved)
{
_name = name;
NumberServed = numberserved;
}
public string Name
{
get
{
return _name;
}
}
public int NumberServed
{
get
{
return _numberserved;
}
set
{
if (value > 4)
{
_numberserved = 4;
}
else
{
_numberserved = value;
}
}
}
}