2

私は、さまざまな本の一般的なリストを持つプログラムに取り組んでいます。私が抱えている問題は、本のクラスがスーパークラスのメソッドをオーバーライドして、ToString()次のSystem.Objectような文字列を表示する必要があることです。

authorFirstName、authorLastName、「bookTitle」、年。

本クラスのコードは次のとおりです。

 class Book
 {
    public string bookTitle
    {
        get;
        set;
    }

    public string authorFirstName
    {
        get;
        set;
    }

    public string authorLastName
    {
        get;
        set;
    }

    public int publicationYear
    {
        get;
        set;
    }


}

そして、ここに私のコードがありますMain:

 static void Main(string[] args)
    {

        List<Book> books = new List<Book>();
        books.Add(new Book { authorFirstName = "Dumas", authorLastName = "Alexandre", bookTitle = "The Count Of Monte Cristo", publicationYear = 1844 });
        books.Add(new Book { authorFirstName = "Clark", authorLastName = "Arthur C", bookTitle = "Rendezvous with Rama", publicationYear = 1972 });
        books.Add(new Book { authorFirstName = "Dumas", authorLastName = "Alexandre", bookTitle = "The Three Musketeers", publicationYear = 1844 });
        books.Add(new Book { authorFirstName = "Defoe", authorLastName = "Daniel", bookTitle = "Robinson Cruise", publicationYear = 1719 });
        books.Add(new Book { authorFirstName = "Clark", authorLastName = "Arthur C", bookTitle = "2001: A space Odyssey", publicationYear = 1968 });
    }

ToString()したがって、「スーパークラスのメソッドをオーバーライドSystem.Objectして、次の形式の文字列を返す」ことについて私が何をすべきかについてのアイデア:

authorFirstName、authorLastName、「bookTitle」、年。
4

4 に答える 4

4

下記参照:

class Book
 {
    public string bookTitle
    {
        get {return bookTitle; }
        set {bookTitle = value; }
    }

    ...

    public override string ToString() {
        return string.Format("{0}, {1}, {2}, {3}", 
                         authorFirstName, authorLastName, bookTitle, 
                         publicationYear);
    }
}
于 2013-02-21T08:21:17.857 に答える
0

Bookではなく、クラスで文字列にオーバーライドする必要がありますSystem.ObjectBook次の関数をクラスに追加します。

public override string ToString()
{
    return this.authorFirstName + ", " + this.authorLastName + ", " + this.bookTitle + "," + this.publicationYear.ToString();
}
于 2013-02-21T08:22:24.783 に答える
0

system.Object.ToString() をオーバーライドすることはできません

ただし、独自のコレクションを実装できます。

または、リストで呼び出すことができるリスト「ListToMyStringFormat」に拡張メソッドを作成します

于 2013-02-21T08:20:53.553 に答える
0

これを行う方法の例を次に示します。

public class User
{
    public Int32 Id { get; set; }
    public String Name { get; set; }
    public List<Article> Article { get; set; }

    public String Surname { get; set; }

    public override string ToString()
    {
       return Id.ToString() + Name + Surname;
    }
}
于 2013-02-21T08:22:17.807 に答える