由于名称相同或语法错误而导致 C# 错误?

标签 c#

为了练习,我必须创建一个类似的库。项目规范表明应该有一个 Book 类和 Borrower 字段:

+---------------------------+            +--------------------------+
|Book                       |            |Borrower                  |
+---------------------------+            +--------------------------+ 
|private string title       |            |private string name       |
|private string author      |            |private Book b            |
|private int ISBN           |            

以及这些方法:

|public Book(string,string,int)|         |public Borrower(String)  |
|public string GetAuthor()     |         |public string GetName()  |
|public string GetTitle()      |         |public Book GetBook()    |
|public int GetISBN()          |         |public void SetBook(Book)|
|// add methods, if needed     |         |                         |
+------------------------------+         +-------------------------+

所以我将其编码到我的编译器中,但在我的 Borrower 类中,我遇到了如下错误:

class Borrower
{
    private string name;
    private Book b;

    public Borrower(string n)
    {
        name = n;
    }

    public string GetName()
    {
        return name;
    }

    public Book GetBook()
    {
        return b;
    }

    public void SetBook(Book) //I get an error here (Identifier expected)
    {
        Book = b; // error here says Book is type but is used as a variable
    }
}

这是我的 Book 类,这里没有错误

class Book
{
    private string title, author;
    private int ISBN;

    public Book(string a, string b, int c)
    {
        title = a;
        author = b;
        ISBN = c;
    }

    public string GetAuthor()
    {
        return author;
    }

    public string GetTitle()
    {
        return title;
    }

    public int GetISBN()
    {
        return ISBN;
    }
}

我收到错误是因为我有一个与类名称相同的方法Book,还是我实际上可以将该类用作方法

最佳答案

这个方法

public void SetBook(Book)
{
    Book = b;
}

应重写如下:

public void SetBook(Book b)
{
    this.b = b;
}

否则,作为参数传递的对象将没有名称。我使用了与您的字段 Book b 相同的名称,因此我添加了 this.b 以消除歧义。

关于由于名称相同或语法错误而导致 C# 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43966962/

相关文章:

c# - Interop.MSXML2 抛出异常,因为它未注册但不会注册!

c# - 如何找到图像移动的像素数量?

c# - ParallelExtensions "Extras"是否仍然有值(value)?

c# - 更新mysql数据库导致错误

c# - WriteAllBytes - 拒绝访问路径

c# - 在 ASP.NET Core Web Api 中有多个带有多个查询字符串参数的 get 方法

c# - 添加到文本文件而不删除

c# - Linq 查询按多列分组但获取其他属性

c# - 如何在运行时访问(或生成)NHibernate Sql

c# - WPF 4.0 的日期时间选择器