我正在努力学习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方法获取正确的数据,但它不会将其添加到书籍列表中。
答案 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");
}
然后你会有一本书中有一本书。