0

5ポイントコンストラクターのコードを含むパブリッククラスがあります。

public LibraryBook( string title, string author, string publisher,
         int year, string number)
    {
    }

コンストラクターの部分であるexstring titleは、そのクラス内のプロパティですが、作成後に更新できないように、プライベートセットアクセサーが必要です。基本的に、パラメーターなしのコンストラクターを使用して、使用する空のオブジェクトを作成することはできません。

これは私の教授が私に望んでいることです:

代わりに、最初にフォームのテキストボックスから必要なすべてのデータをプルして(完了)、次にそれらの値を使用してLibraryBookオブジェクトを作成する(完了)必要があります。LibraryBookクラスにはコンストラクターが1つしかないため、タイトル、著者、著作権年などを引数として渡す必要があります。本が作成されたら、フォームの本のリストに追加し、そのタイトルをフォームに追加できます。フォームのリストボックス。

これは、すべてプライベートイベントハンドラー内にあるフォームのクラスにあるものです。メソッドに含める必要があるかどうかわからないため、別のイベントハンドラーでアクセスできます。これは、の詳細を表示する必要があるボタンがあるためですListBox。参照して表示する方法がわかりません。

List<LibraryBook> booklist = new List<LibraryBook>();

string titles;
titles = titleTextBox.Text;

LibraryBook book = new LibraryBook(titles, authors, publishers, years, numbers);

booklist.Add(book);

booksListBox.Items.Add(titles);
4

2 に答える 2

1

イベントハンドラーのでブックリストを宣言します。

 public class Form1
 {
    private List<LibraryBook> booklist = new List<LibraryBook>();

    private void Button_Click(....)
    {
            string titles;
            titles = titleTextBox.Text;

            LibraryBook book = new LibraryBook(titles, authors, publishers, years, numbers);

            booklist.Add(book);

            booksListBox.Items.Add(titles);
    }

  }

これで、Form1 クラス内の任意のプライベート メソッドからアクセスできるようになりました....

あなたの質問の他の部分について。あなたの教授が言ったように、彼はプライベートな set アクセサーを望んでいますが、get はパブリックにする必要があります。例えば:

public LibraryBook( string title, string author, string publisher,
     int year, string number)
{
    public string Title { get; private set; }
}

次に、リストから最初の本のタイトルが必要な場合は、次のようにします。

LibraryBook book = booklist[0];
string myTitle = book.Title;
于 2012-12-10T14:57:31.950 に答える
0

私があなたの質問を正しく理解していれば、フォーム クラスのプライベート メンバーにブックリストを隠しておく必要があります。

public class Form
{
    private List<LibraryBook> _books = new List<LibraryBook>();


    protected void Handle_Form_Submit_whatever()
    {
        var book = new LibraryBook(...); // add all the stuff from the form inputs

        _books.Add(book);

    }

   protected void Some_other_Eventhandler()
   {

       //do stuff with _books
   }


}
于 2012-12-10T14:59:28.927 に答える