2016-04-27 15 views
-1

私の質問です:新しいオブジェクトを作成した後にコンストラクタのプロパティにアクセスできる方法はありますか?C#リストから特定のコンストラクタのプロパティを持つクラスオブジェクトを削除する

私はこのクラスを作成しました:

class Book 
{ 
    private string Title { get; set; } 
    private string Author { get; set; } 
    private string ISBN { get; set; } 
    public bool Available { get; set; } 

    public Book(string title, string author, string isbn) 
    { 
     this.Title = title; 
     this.Author = author; 
     this.ISBN = isbn; 
    } 
} 

は、それから私は、次のように新しいオブジェクトを作成します。

Book myBook = new Book("Strategic Management", "John Doe", "1234567"); 

は、どのように私は上記の目的からタイトルを抽出することができますか?ほとんどの場合、唯一のsetter方法は、プロパティにカプセル化され、事前に

public void RemoveLoan(Book oldLoan) 
    { 

     var item = Loans.SingleOrDefault(x => x.Book.Title == oldLoan.Title); 
     if (item != null) 
     { 
      Loans.Remove(item); 
     } 

    } 

おかげ

+2

なぜそれらのプロパティはプライベートですか?プライベートなのでアクセスできません。 –

+0

プロパティを 'public'にします。このようなものを常に読みやすくすることができます。 'public string Title {get;プライベートセット; } ' – juharr

+0

これは学校の割り当てですが、私は要件にちょうど従っています。 – Igor

答えて

2

:私は、次の構文でタイトルを使用する必要が

// setter is encapsulated, while getter is public allowing you to acess value 
public string Title { get; private set; } 
public string Author { get; private set; } 
public string ISBN { get; private set; } 

を代わりにあなたが作るためにreadonlyフィールドを使用することができますあなたのクラスimmutable

public readonly title; 
public readonly author; 
public readonly iSBN; 
関連する問題