Class 中没有给出对应于所需形式参数的参数
There is no argument given that corresponds to the required formal parameter in Class
我制作了这段使用 类 提取信息的代码片段 objects
。我仍然是 Class
和 Object programming
的菜鸟,所以我很容易出错。现在我有一个问题,我完全不明白。我试过万能的Google,用不同的运算符替换部分代码,并请教了我的程序员朋友。似乎没有人知道发生了什么。
问题出现在CompareBooks
方法中,它一直告诉我我缺少一个formal parameter
。有人建议在方法中使用 :base
,但它只会造成 2 个错误。
namespace ClassProgram
{
class Book
{
public string name;
public int id;
public float price;
public void PrintBookInfo()
{
Console.WriteLine("--------------");
Console.WriteLine("Book Name: " + this.name);
Console.WriteLine("Book Id: " + this.id);
Console.WriteLine("Book Price: " + this.price + " dollars");
}
public void CompareBooks(Book book1)
{
if (this.price > book1.price)
{
Console.WriteLine(this.name + " is more expensive than " + book1.name);
}
}
class MainProgram
{
static void Main(string[] args)
{
Book book = new Book();
book.name = "C# For Newbies";
book.id = 01;
book.price = 10;
book.PrintBookInfo();
book.CompareBooks();
Book book1 = new Book();
book1.name = "Lord Of The Rings";
book1.id = 02;
book1.price = 5;
book1.PrintBookInfo();
}
}
}
}
调用时,您的book.CompareBooks();
没有Book
对象作为参数输入。将此与您的签名进行比较:
public void CompareBooks(Book book1) //the Book object is required in the input
所以你得到了错误。 "Formal parameter" 表示 a-must 参数(与 C# 中的语法糖 optional-parameter 相比)。这意味着您必须在方法的输入参数中放置一些内容才能调用它。
假设在你的 MainProgram
中是这样的 运行:
Book book = new Book();
book.name = "C# For Newbies";
book.id = 01;
book.price = 10;
book.PrintBookInfo();
Book book1 = new Book();
book1.name = "Lord Of The Rings";
book1.id = 02;
book1.price = 5;
book1.PrintBookInfo();
book.CompareBooks(book1); //note that this has input now
那么你的代码应该没问题
您没有提供任何关于您的第一本书应该与哪本书进行比较的信息。我想你是这样说的:
Book book = new Book();
book.name = "C# For Newbies";
book.id = 01;
book.price = 10;
book.PrintBookInfo();
Book book1 = new Book();
book1.name = "Lord Of The Rings";
book1.id = 02;
book1.price = 5;
book1.PrintBookInfo();
book.CompareBooks(book1);
我制作了这段使用 类 提取信息的代码片段 objects
。我仍然是 Class
和 Object programming
的菜鸟,所以我很容易出错。现在我有一个问题,我完全不明白。我试过万能的Google,用不同的运算符替换部分代码,并请教了我的程序员朋友。似乎没有人知道发生了什么。
问题出现在CompareBooks
方法中,它一直告诉我我缺少一个formal parameter
。有人建议在方法中使用 :base
,但它只会造成 2 个错误。
namespace ClassProgram
{
class Book
{
public string name;
public int id;
public float price;
public void PrintBookInfo()
{
Console.WriteLine("--------------");
Console.WriteLine("Book Name: " + this.name);
Console.WriteLine("Book Id: " + this.id);
Console.WriteLine("Book Price: " + this.price + " dollars");
}
public void CompareBooks(Book book1)
{
if (this.price > book1.price)
{
Console.WriteLine(this.name + " is more expensive than " + book1.name);
}
}
class MainProgram
{
static void Main(string[] args)
{
Book book = new Book();
book.name = "C# For Newbies";
book.id = 01;
book.price = 10;
book.PrintBookInfo();
book.CompareBooks();
Book book1 = new Book();
book1.name = "Lord Of The Rings";
book1.id = 02;
book1.price = 5;
book1.PrintBookInfo();
}
}
}
}
调用时,您的book.CompareBooks();
没有Book
对象作为参数输入。将此与您的签名进行比较:
public void CompareBooks(Book book1) //the Book object is required in the input
所以你得到了错误。 "Formal parameter" 表示 a-must 参数(与 C# 中的语法糖 optional-parameter 相比)。这意味着您必须在方法的输入参数中放置一些内容才能调用它。
假设在你的 MainProgram
中是这样的 运行:
Book book = new Book();
book.name = "C# For Newbies";
book.id = 01;
book.price = 10;
book.PrintBookInfo();
Book book1 = new Book();
book1.name = "Lord Of The Rings";
book1.id = 02;
book1.price = 5;
book1.PrintBookInfo();
book.CompareBooks(book1); //note that this has input now
那么你的代码应该没问题
您没有提供任何关于您的第一本书应该与哪本书进行比较的信息。我想你是这样说的:
Book book = new Book();
book.name = "C# For Newbies";
book.id = 01;
book.price = 10;
book.PrintBookInfo();
Book book1 = new Book();
book1.name = "Lord Of The Rings";
book1.id = 02;
book1.price = 5;
book1.PrintBookInfo();
book.CompareBooks(book1);