次の方法で共有


手順 2: Random オブジェクトおよびアイコンのリストの追加

2 つの new ステートメントを使用して 2 つのオブジェクトを作成し、それらをフォームに追加する必要があります。1 つ目は、計算クイズ ゲームで使用したオブジェクトに似た Random オブジェクトです。2 つ目は、新しいオブジェクトの List オブジェクトです。

Random オブジェクトおよびアイコンのリストを追加するには

  1. リストを作成する次のコードを追加する前に、そのしくみについて考えます。

    Public Class Form1
    
        ' Use this Random object to choose random icons for the squares
        Private random As New Random
    
        ' Each of these letters is an interesting icon
        ' in the Webdings font,
        ' and each icon appears twice in this list
        Private icons =
          New List(Of String) From {"!", "!", "N", "N", ",", ",", "k", "k",
                                    "b", "b", "v", "v", "w", "w", "z", "z"}
    
    public partial class Form1 : Form
    {
        // Use this Random object to choose random icons for the squares
        Random random = new Random();
    
        // Each of these letters is an interesting icon
        // in the Webdings font,
        // and each icon appears twice in this list
        List<string> icons = new List<string>() 
        { 
            "!", "!", "N", "N", ",", ",", "k", "k",
            "b", "b", "v", "v", "w", "w", "z", "z"
        };
    
  2. ソリューション エクスプローラーForm1.cs を右クリックし、メニューの [コードの表示] をクリックしてコード エディターに移動します。前の手順で示されているコードの入力を開始します。Visual C# コードを記述している場合は、必ずクラス宣言 (public partial class Form1 : Form) のすぐ後の、始め中かっこの後にコードを配置してください。Visual Basic コードを記述している場合は、クラス宣言 (Public Class Form1) のすぐ後にコードを配置します。

  3. List オブジェクトを追加するときに、表示される IntelliSense ウィンドウを注意して見ます。以下は Visual C# の例です (Visual Basic でリストを追加する場合も同様のテキストが表示されます)。

    IntelliSense ウィンドウ

    Click イベントが表示された [プロパティ] ウィンドウ

    [!メモ]

    小さなセクションのコードを見ると、より容易に理解できます。プログラムでは、List オブジェクトを使用して多数の項目を追跡できます。リストでは、数値、true/false 値、テキスト、またはその他のオブジェクトを保持できます。他の List オブジェクトを保持している List オブジェクトを持つこともできます。リスト内の項目は要素と呼ばれ、各リストで保持される要素は 1 種類のみです。そのため、数値のリストでは数値しか保持できません。数値のリストにテキストを追加することはできません。また、true/false 値のリストに数値を追加することもできません。

    [!メモ]

    new ステートメントを使用して List オブジェクトを作成するときは、リストで何を保持するのかを示す必要があります。IntelliSense ウィンドウの上部のツールヒントがリスト内の要素の種類を示すのはそのためです。また、List<string> (Visual C# の場合) および List(Of String) (Visual Basic の場合) は、このこと (つまり、List オブジェクトは文字列を保持するということ) を示しています。string は、プログラムがテキストの格納に使用するものであり、IntelliSense ウィンドウの右側のツールヒントが示しているものです。

  4. Visual Basic では最初に一時配列を作成する必要があるのに対し、Visual C# では 1 つのステートメントでリストを作成できる理由を考えます。これは、Visual C# 言語にはコレクション初期化子があるためです。Visual Basic 2010 では、コレクション初期化子を使用できます。ただし、以前のバージョンの Visual Basic との互換性を確保するため、先に示されているコードを使用することをお勧めします。

    [!メモ]

    new ステートメントでコレクション初期化子を使用した場合は、新しい List オブジェクトを作成すると、プログラムによって、中かっこ内に示されているものがリストに格納されます。ここでは、icons という名前の文字列のリストが生成され、そのリストは、16 の文字列を格納できるように初期化されます。これらの各文字列は、1 つの文字であり、それらすべてがラベルで表示されるアイコンと対応しています。よって、ゲームには、感嘆符のペア、大文字の N のペア、コンマのペアなどが存在することになります。List オブジェクトは、TableLayoutPanel のセルごとに 1 つの、合計 16 の文字列を保持することになります。

    [!メモ]

    Visual Basic では、結果は同じになりますが、最初に一時配列に文字列が格納されてから、この一時配列が List オブジェクトに変換されます。配列はリストと似ていますが、配列は固定サイズで作成されるなどの例外があります。リストは、必要に応じて縮小および拡大できます。このプログラムではこの点が重要になります。

続行または確認するには