Kütüphane sınıfı
Library sınıfıyla koleksiyon yönetimini kurarsın.
Library sınıfı: koleksiyon saklamak
Bu derste Library sınıfını tanımlayacaksın. Bu sınıf kitapları ve üyeleri List<Book> ve List<Member> koleksiyonlarında saklar. Dışarıdan ekleme yapmak için AddBook ve AddMember metotları verir.
Listelemek için ListBooks metodu yazacağız; bu metod içerideki foreach ile her kitabın başlığını Console.WriteLine ile yazar. Library sınıfı veriyi kendi içinde tutar; dışarıdan doğrudan listeye erişilmez. Bu, sınıfın iç durumunu gizlemek için iyi bir uygulamadır.
foreach ile koleksiyon dolaşmak
ListBooks metodunun içinde foreach döngüsü koleksiyondaki her öğeyi sırayla verir. foreach (var b in _books) yazısı her dönüşte b'ye listeden bir kitap atar.
Döngü gövdesinde Console.WriteLine(b.Title) ile başlığı yazdırırız. foreach, for döngüsünden farklı olarak indeks yönetmez; bu yüzden koleksiyon dolaşmak için daha okunaklıdır. Bu projede listeleme işlerini hep foreach ile yapacağız.
Uygulama Library sınıfını ekle ve ListBooks çağır
Library sınıfı tanımla. Özel alanlar: private List<Book> _books = new List<Book>(); ve private List<Member> _members = new List<Member>();. Metotlar: public void AddBook(Book b), public void AddMember(Member m), public void ListBooks(). ListBooks içinde foreach ile her kitabın Title'ını Console.WriteLine ile yaz. Main içinde Library örneği üret, bir kitap ekle ve ListBooks çağır.
Örnek çözümü göster
class Library { private List<Book> _books = new List<Book>(); private List<Member> _members = new List<Member>(); public void AddBook(Book b) { _books.Add(b); } public void AddMember(Member m) { _members.Add(m); } public void ListBooks() { foreach (var b in _books) Console.WriteLine(b.Title); } } yaz. Main'de var lib = new Library(); lib.AddBook(new Book { Title="Tutunamayanlar", Author="Oğuz Atay" }); lib.ListBooks(); ekle.
Örnek çözüm:
using System;
using System.Collections.Generic;
class Book
{
public string Title { get; set; }
public string Author { get; set; }
public bool IsBorrowed { get; set; }
}
class Member
{
public string Name { get; set; }
public int BorrowedCount { get; set; }
}
class Library
{
private List<Book> _books = new List<Book>();
private List<Member> _members = new List<Member>();
public void AddBook(Book b) { _books.Add(b); }
public void AddMember(Member m) { _members.Add(m); }
public void ListBooks()
{
foreach (var b in _books)
{
Console.WriteLine(b.Title);
}
}
}
class Program
{
static void Main()
{
var book = new Book { Title = "Çalıkuşu", Author = "Reşat Nuri" };
var member = new Member { Name = "Ayşe" };
Console.WriteLine(book.Title);
Console.WriteLine(member.Name);
var lib = new Library();
lib.AddBook(new Book { Title = "Tutunamayanlar", Author = "Oğuz Atay" });
lib.ListBooks();
}
}
Kendini test et
-
Listeye öğe ekleme metodu
_books.____(b);Cevabı göster
_books.Add(b); -
Hangisi Library sınıfının List<Book> alanıdır?
- public List<Book> Books;
- private List<Book> _books = new List<Book>();
- public Book _books;
- private List<Book>;
Cevabı göster
private List<Book> _books = new List<Book>(); — Doğru. Özel alan, başlatılmış bir List<Book> tutar.
-
List<T> metodunu görevine eşle
- Add
- Sona öğe ekler
- Count
- Öğe sayısını verir
- foreach
- Her öğeyi dolaşır
- new List<T>()
- Boş liste üretir