Поделиться через


Шаг 2. Добавление случайного объекта и списка значков

На этом шаге будет создан набор парных символов для игры.Каждый символ добавляется в две случайные ячейки в TableLayoutPanel в форме.Для этого используются два оператора new, создающие два объекта.Первый является объектом Random. Такой же объект использовался в игре "Математическая головоломка".Он используется в этом коде для случайного выбора ячейки в TableLayoutPanel.Второй объект, который может показаться вам новым, это объект List, используемый для хранения случайно выбранных символов.

Добавление случайного объекта и списка значков

  1. В Обозревателе решений выберите Form1.cs, если используется Visual C#, или Form1.vb, если используется Visual Basic, а затем в строке меню выберите Вид, Код.В качестве альтернативы можно нажать клавишу F7 или дважды щелкнуть Form1 в Обозревателе решений.

    Будет показан модуль кода формы Form1.

  2. В имеющийся код добавьте следующий фрагмент.

    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"
        };
    

    При написании кода на языке Visual C# убедитесь, что вы помещаете код после открывающей фигурной скобки и сразу после объявления класса (public partial class Form1 : Form).При написании кода на языке Visual Basic поместите код сразу после объявления класса (Public Class Form1).

  3. При добавлении объекта List обратите внимание на открывшееся окно IntelliSense.Ниже приведен пример на языке Visual C#, но аналогичный текст отобразится и при добавлении списка в Visual Basic.

    Окно IntelliSense

    Окно свойств, отображающее событие Click

    ПримечаниеПримечание

    Окно Intellisense отображается только при вводе кода вручную.При копировании и вставке кода оно не отображается.

    Код проще понять, если рассматривать его (и примечания) небольшими частями.Объекты List можно использовать для отслеживания элементов множества различных типов.Список может содержать числа, значения true или false, текст и другие объекты.Также объект List может содержать другие объекты List.Список состоит из элементов, и каждый список содержит только один тип элементов.Поэтому список чисел может содержать только числа. В него нельзя добавить текст.Аналогично нельзя добавлять числа в список значений true или false.

    При создании объекта List с помощью оператора new необходимо указать ему, данные какого типа будут храниться в этом объекте.Вот почему подсказка в верхней части окна IntelliSense указывает на тип элементов списка.Вот что значит код List<string> (в Visual C#) и List(Of String) (в Visual Basic) — это объект List, содержащий элементы типа string.Строка используется программой для хранения текста, о чем и сообщается в подсказке справа от окна IntelliSense.

  4. Рассмотрим, почему в Visual Basic сначала необходимо создать временный массив, а в Visual C# можно создавать список с помощью одного оператора.Это происходит потому, что язык Visual C# имеет инициализаторы коллекций, которые подготавливают список к приему значений.В Visual Basic можно использовать инициализатор коллекции.Однако для обеспечения совместимости с предыдущей версией Visual Basic рекомендуется использовать предыдущий код.

    При использовании инициализатора коллекции с оператором new после создания нового объекта List программа заполняет его данными, которые указаны внутри фигурных скобок.В этом случае будет инициализирован список строк с именем icons, содержащий шестнадцать строк.Каждая из этих строк представляет одну букву, которая соответствует значку, отображаемому в метке.Таким образом, игра будет иметь пару восклицательных знаков, пару прописных букв N, пару запятых и т. д. (Если эти символы заданы шрифтом Webdings, они отображаются как символы, такие как автобус, велосипед, паук и т. д.) Объект List будет содержать шестнадцать строковых значений, по одному для каждой ячейки в TableLayoutPanel.

    ПримечаниеПримечание

    В Visual Basic получится такой же результат, но сначала строки помещаются во временный массив, который затем преобразуется в объект List.Массив похож на список, за исключением того, например, что массивы создаются фиксированного размера.Списки можно уменьшать и увеличивать по мере необходимости, что важно для этой программы.

Продолжить или повторить пройденный материал