将新对象添加到列表中

时间:2016-08-22 14:49:53

标签: c# list

我正在努力学习oop但是在某个地方呆了好几个小时。 这是我的主要课程:

static void Main(string[] args)
{
     Class1 cls = new Class1("",0);
     cls.kitapAdi= "book name";
     cls.sayfaSayisi= 22;
     bool sonuc = cls.AddBook(cls);
}

对象类(Class1):

 public Class1(string ali, int mehmet)
    {
        this.kitapAdi = ali;
        this.sayfaSayisi = mehmet;
    }

    List<Class1> books = new List<Class1>();     

    private string kitapAdi;
    private int sayfaSayisi;

    public int SayfaSayisi
    {
        get { return sayfaSayisi; }
        set { sayfaSayisi = value; }
    }

    public string KitapAdi
    {
        get { return kitapAdi; }
        set { kitapAdi = value; }
    }

    public bool AddBook(Class1 kitap)
    {
        try
        {
            books.Add(new Class1 ( kitapAdi = kitap.kitapAdi, sayfaSayisi = kitap.sayfaSayisi ));

            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }

它没有任何错误但没有任何反应。当我调试时,我认为Class1的AddBook方法获取正确的数据,但它不会将其添加到书籍列表中。

1 个答案:

答案 0 :(得分:3)

嗯,问题是,Class1包含一个List,它将保留Class1类型的对象。包含自身元素列表的类可能导致严重问题。假设你想要一本书的列表,我宁愿你有一个类Book的解决方案,其中包含你想要存储的关于书籍的所有信息。然后你应该创建一个用于管理书籍的课程BookList。在下面的示例中,有一个类BookList,它在开头只能添加一本新书。您可以使用其他功能对其进行扩展,例如搜索图书,删除图书或回放所有图书的列表。这是我的例子:

class Book
{
    public string Title { get; set; } // This is an automatic property
    public string Author { get; set; }
}

class BookList
{
    private var books = new List<Book>();

    public bool AddBook (string title, string author)
    {
         books.Add(new Book { Title = title, Author = author });
         return true;
    }
}

static void Main(string[] args)
{
    var bookList = new BookList();
    bookList.AddBook ("Mehmet", "Ali");
}

然后你会有一本书中有一本书。