Указание действия в случае события




Visual Studio 2005

Февраль 2007 г.

Будет ли интересно?

Мне кажется, я знаю, о чем вы сейчас думаете… «Я хочу написать программу и хочу сделать это сейчас! Программирование это самое интересное, и я не собираюсь создавать свою первую программу, прочитав половину книги. Даже уже это предложение становится слишком длинным. Я просто уже хочу начать!»

Честно говоря, мне все же хочется встретить программиста, который смог бы сопротивляться желанию немедленно окунуться в программирование с головой. В конце концов, если вы купили новый велосипед, вы сначала присядете и прочтете инструкцию? Скорее всего, нет. Вы вскочите на своего коня, понесетесь, расшибете лицо и только потом обнаружите, что тормоза у этой модели совсем не те, что у других велосипедов.

Итак, давайте договоримся. Начнем погружение с самой первой главы. После установки программы можете выполнить некоторые примеры и даже изменить их, если у вас хватит смелости.

Первые программы будут выглядеть странно и бессмысленно, как езда вслепую, и когда вы допустите небольшую ошибку, то не будете знать как решить проблему, поскольку программа просто не будет работать. В этот момент вы поймете, что пришло время заняться теорией, как это делают профессионалы. Не унывайте и не сдавайтесь, если что-то не будет получаться. А когда придет время, прочтите оставшуюся часть книги, хорошо?

Очень важная часть

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

Итак, прежде всего: наслаждайтесь освоением мира программирования C#!

Для разработки программ на C# вам понадобятся:

  1. Пакет Microsoft.NET Framework 2.0, который можно бесплатно загрузить на странице https://msdn.microsoft.com/ru-ru/netframework/aa569263.aspx.
  2. Среда разработки.NET Framework. Мы рекомендуем версию Microsoft Visual C# 2005 Express Edition, которую можно бесплатно загрузить на веб-узле Microsoft по ссылке: https://www.microsoft.com/express/ru/vcsharp/Default.aspx. Пакет установки Visual C# 2005 Express включает.NET Framework, так что вам не придется отдельно устанавливать приложение из пункта 1 выше.
  3. И наконец, вам нужно скопировать файлы примеров из книги на диск своего компьютера. Распакуйте файл example.zip в любую папку. Запомните размещение выбранной папки, так как позднее вам потребуется открывать из нее файлы.

Дополнительная информация о Microsoft Visual C# 2005 Express Edition

Программы на C# можно писать в простом текстовом редакторе (таком как Блокнот) и компилировать при помощи так называемого «Компилятора C#», входящего в состав.NET Framework. Чтобы несколько упростить задачу, а также обеспечить ваше дальнейшее продвижение после прочтения книги, мы рекомендуем использовать среду разработки Visual C# Express. Это упрощенная среда для разработки приложений для Windows и консольных приложений (приложений командной строки) на языке C#.

Важно понимать, что эта книга не научит вас, как пользоваться программой Visual C# Express Edition, скорее она обучит вас языку C#.

В Visual C# Express также есть множество замечательных функций, таких как автоматическое написание кода C# при перетаскивании кнопки или другого элемента управления на страницу. Это замечательная возможность и ей можно пользоваться, но цель этой книги — обучить языку C#, начиная с самых основ». Мы хотим научить вас писать код C# сначала вручную, чтобы вы действительно поняли, что происходит.

Чтобы получить дополнительные сведения о среде разработки Visual C# Express, посетите веб-узел https://www.microsoft.com/express/ru/vcsharp/Default.aspx.

Написание новой программы в Visual C# Express

  • Чтобы запустить Visual C# Express в меню «Пуск» укажите «Все программы» и затем «Microsoft Visual C# 2005 Express Edition».
  • Для начала нового проекта в меню File(«Файл») щелкните New project («Новый проект») и выберите тип проекта. Мы начнем с нескольких консольных приложений, а позднее перейдем к приложениям для Windows.

  • Например, попробуйте создать новое консольное приложение и нажмите «ОК». В открывшемся окне для программирования Program.cs удалите весь автоматически вставленный код и наберите текст простой программы, приведенной ниже. Вы можете скопировать и вставить текст, если лень сильнее вас. Но разве это умно?!

· using System;

·

· class PleaseSayYo

· {

· static void Main()

· {

· Console.WriteLine(" Yo! ");

· Console.ReadLine();

· }

· }

 

Убедитесь, что набранный вами текст в ТОЧНОСТИ соответствует представленному выше (форматирование курсивом можно пропустить).

  • Затем нажмите кнопку «Выполнить» или «Воспроизвести» (или нажмите клавишу F5)

  • Если программа выполнена успешно, через некоторое время она откроется в появившемся окне.

По завершении программы ее необходимо остановить. Для этого можно нажать кнопку «X» в верхнем правом углу окна.

  • Если в коде программы будет обнаружена какая-либо ошибка, вы получите предупреждение. Например, обратите внимание на то, что в языке программирования C# в конце каждого предложения или выражения должна стоять точка с запятой. Если удалить последнюю точку с запятой («;»), а затем выполнить программу, то вы увидите следующее сообщение об ошибке.

В большинстве случаев нужно нажать кнопку «Нет», и в окне «Список ошибок» вы увидите некоторые сведения о ней, включая указание номера строки, в которой она была найдена. Щелкните дважды это описание, чтобы перейти к строке с ошибкой и исправить ее.

Выполнение примеров программ, прилагаемых к книге

Для выполнения некоторых примеров из этой книги потребуются прилагаемые к ней файлы. Эти программы не будут работать правильно, если вы просто скопируете их текст.

Итак, после того как файлы примеров скопированы в какую-либо папку на вашем компьютере, вы можете выполнить их следующим образом.

  • В Visual C# Express в меню File(«Файл») щелкните Open project(«Открыть проект»)
  • Перейдите к папке, в которую были сохранены файлы примеров, и выберите проект с расширением csproj (C# project).
  • Нажмите зеленую кнопку «Выполнить».

Чтобы упростить рассмотрение примеров кода в книге, мы решили соблюдать определенный порядок:

Взгляните на следующий пример кода:

// Основной метод

 

static void Main()

{

Application.Run(new MyButtonClass ());

}

 

// Метод обработчика событий

 

void MyButtonClickEventHandler (object sender, EventArgs e)

{

mrButton. Text = " You clicked me! ";

}

 

  • Примеры кода написаны несколько отличным от остального текста шрифтом (Courier New)
  • Любые слова или символы, «выбираемые нами», выделены курсивом. В примерах выше это «MyButtonClass » и «mrButton ”.
  • Любые слова или символы, являющиеся частью языка C# или входящие в.NET Framework, такие, как «static void Main()» или «.Text», пишутся в обычном стиле.
  • Жирный текст призван привлечь ваше внимание.
  • Двумя косыми чертами («//») обозначаются комментарии к коду (фактически, это возможность языка C#). Все содержимое строки после этих символов пропускается компьютером. В примере выше это «// Основной метод».

В II части книги описано большинство общих понятий и приводится краткое изложение ключевых понятий. Такое краткое изложение называется «строительным блоком». Рассмотрим пример строительного блока.

Строительный блок: Классы
Все программы на языке C# создаются внутри классов. Основная структура класса для компьютера имеет следующий вид: class Animal {   }  

Возможно, вы захотите какое-то время поизучать функции Visual C# Express, просмотреть файлы справки и понять, что собой представляет эта программа. Даже если вы новичок в C#, скоро вы поймете, что для общения с компьютером недостаточно иметь инструмент программирования — нужно нечто большее.

В таком случае настало время перейти к следующей части книги, и учиться общению с компьютером на языке программирования C#.

 

C# для вундеркиндов. Часть 2. Учимся общаться с компьютером

Visual Studio 2005

Февраль 2007 г.

Основная трудность при написании компьютерных программ заключается в том, что компьютер и мы «воспитаны» разными родителями. Если бы это было не так, то мы обрели бы единое понимание окружающего мира и научились бы говорить на общем языке.

Таким образом нам было бы легче понимать друг друга. Мы могли бы просто попросить компьютер нарисовать кота и все.

Вы скажите: «Так давайте научим компьютер понимать нас!». Но компьютеры устроены совсем не так как человеческий мозг и «видят» мир совсем по-другому, поэтому обучить их мышлению подобному нашему — непростая задача.

Выходом может стать поиск компромиссного решения:

  • общий «взгляд на мир» и
  • общий язык, который способны понимать как люди, так и компьютеры.

Эта часть книги полностью посвящена изучению способов общения с компьютером. Потребуется несколько «развернуть» свое сознание, чтобы увидеть вещи с позиции компьютера. При этом придется пойти на взаимные уступки: компьютер сможет научиться многому (например узнает некоторые слова) из нашего мира, но и вы должны будите выучить кое-что из мира компьютеров. Попытайтесь забраться в «голову» компьютера и представить, как можно было бы изложить мысли.

Компьютеры не могут догадываться о том, что мы думаем, чего от них хотим и каким образом они могут выполнить наши желания. Мы можем только мечтать о том дне, когда компьютеры начнут понимать нас по взгляду в их сторону и движению бровей, но сейчас, в реальном мире, нам приходится четко излагать свои идеи и даже давать компьютерам указания, которым они обязаны следовать, чтобы помочь нам. Короче говоря, между людьми и машинами существует большое взаимное непонимание, и если мы хотим добиться от них помощи, нам придется его преодолеть.

Итак, давайте ненадолго забудем о компьютерах и представим, что вам крайне необходимо организовать общение с неким пришельцем. А история такова…

  • К счастью или нет, но что-то произошло во Вселенной и бог весть как это случилось, но вы и странный пришелец оказались на маленьком, пустынном острове посреди океана. После отчаянного «Привет, меня зовут Света, а тебя?», вы, в конце концов, решаете дать своему спутнику имя Алджи.

  • Подступивший голод дает о себе знать и вы замечаете несколько кокосов, растущих на высокой пальме, достать которые мог бы Алджи, но его помощи не стоит ждать, если не удастся найти взаимопонимания.

На песке вы рисуете изображение кокосовой пальмы и, указывая на него, произносите слово «ко-кос». Вас поражает то, что Алджи моментально реагирует на слово «ко-кос». Вы рисуете другие изображения и Алджи отлично на них реагирует. Обнаруживается, что у этого создания талант к языкам. До наступления сумерек Алджи овладевает русским.

  • Будучи взволнованным собственным успехом, вы смотрите Алджи в глаза. «Алджи, пожалуйста, подними меня на плечи, чтобы я могла достать кокосы».

Он смотрит на вас озадаченно. Затем с таким же видом смотрит на изображение кокосовой пальмы. Потом опять на вас. И снова на рисунок. Бесполезно — он не понимает! Осознав свою ошибку, вы хватаетесь за голову и растерянно показываете на настоящую пальму. Но Алджи по-прежнему не может понять. Оказывается, он понимает только по рисункам. Ага! Вам постепенно становится ясно, что хотя Алджи и может использовать ваш язык, он, фактически, НЕ понимает реальных вещей, о которых вы говорите.

  • Каким-то образом необходимо прийти к общему взгляду на мир. Вы думаете, что все просто: раз удалось научить его языку, то можно также обучить понимать объекты реального мира. Но и через трое суток кокосы по-прежнему остаются на пальме. Уроки проходят не очень хорошо и вы теряете контроль по мере того как понимание ускользает от вас.

Вы не знаете, сон это, галлюцинации или видение, но фигура в белом появляется в ярком, туманном свете. Низкий голос подсказывает вам: «Вот отличный способ восприятия окружающего мира!». «Так вы и Знифф12 сможете добиться понимания». (Вы догадываетесь, что это должно быть настоящее имя Алджи.) Вы теряете чувство времени по мере того, как образы магически вкрадываются в ваш разум, обучая новому способу описания мира. Наконец успокоившись, вам удается выйти из этого беспечного состояния.

  • Встрепенувшись, вы хватаете Алджи за плечи: «Я все поняла, приятель, слушай внимательно то, что я тебе скажу». Алджи с нахмуренным видом вслушивается в вашу речь.

  • «В окружающем нас мире существуют различные классы объектов — растения, животные, голодные люди, инопланетяне и так далее».
  • «Сейчас я хотела бы рассказать тебе о существующих объектах на этом острове. А именно, если ты не заметил, меня очень интересует эта кокосовая пальма (которая, между прочим входит в класс называемый «растениями»). Мне также интересен вон тот слон. Ух ты! Странно, как это я не увидела его раньше». (Вы указываете на каждый объект, о котором говорите).
  • «Слон входит в класс, называемый «животными» и имеет некоторые важные для нас свойства, Алджи. Во-первых, все животные могут двигаться. Во-вторых, слон по-настоящему тяжелый. Наверное, тонны две, что пригодится нам. В-третьих, у него скверный характер, что тоже может оказаться полезным.
  • «Ну ладно, Алджи, теперь слушай меня... «В окружающем нас мире непрерывно происходят события. Я проголодалась — это событие. Кокосы созревают — это событие. Иногда мы сами можем вызывать события, чтобы выполнить некоторое действие. У меня есть отличная мысль, давай вызовем событие «беспокойства слона », которое заставит его помочь нам выполнить действие «добывание кокосов ».
  • «Давай разделим обязанности. Я вызову событие (отвлеку внимание слона на тебя), а ты заставишь его достать для нас кокосы, договорились?» При этом Алджи робко смотрит на вас и признает: «Света, я слышу твои слова, но не знаю как это сделать». Похлопывая товарища по спине, вы говорите: «Алджи, не беспокойся, я никогда не стану просить тебя о чем-либо, сначала не объяснив тебе метода выполнения этого действия». Вот что нужно будет сделать после того, как я отвлеку слона и скажу тебе «доставать кокосы»:
    • Выбегай из-за этого камня и вставай рядом с пальмой. Слон немедленно понесется к тебе.
    • В тот момент, когда он достигнет нарисованной мной на песке линии, беги изо всех сил (поворачивай в разные стороны, так как бегать взад и вперед — не лучшая мысль).
    • Он ударится о пальму и на некоторое время оцепенеет, но силой удара кокосы будут сбиты и мы позже сможем собрать их.
    • После этого возвращайся в исходную точку и сообщи результат.

  • Алджи надолго замирает, очевидно переваривая задание, прежде чем неожиданно достает суперсовершенное устройство связи. В течение некоторого времени он передает модемные звуки в это устройство и затем снова кладет его в карман. Вы спрашиваете: «Что все это было, Алджи?». Алджи отвечает: «Позволь мне перевести, Света...
    • Существует класс объектов, называемых Икс-знифферами.
    • Я один из объектов такого класса, но есть и другие.
    • Все объекты этого класса обладают следующими свойствами:

- name (например мое имя — Знифф12)

- earShape (значение которого всегда «трубка»)

- likeToWatchTV (в большинстве случаев имеет значение истины, а в других случаях — лжи)

  • Должен признаться, что мое появление здесь не случайно. Ты попала в популярное ТВ-шоу «Остаться в живых». Но я только что позвонил своему продюсеру и сказал, что меня не удовлетворяет обещанная плата за такое задание. Он собирается немедленно выполнить метод ОтправитьСпасательнуюГруппу».

На этом сказочная история заканчивается. Смысл в том, что вам с Алджи удалось разработать общий способ описания мира — вы используете одни термины и одинаково понимаете их значение. Это, наряду с использованием единого языка, дает вам возможность общения.

Теперь представим, что вместо инопланетянина, вам нужно объясниться с компьютером. Решение будет аналогичным, как и в рассказанной истории. И проблему можно будет решить подобным образом: согласовав определенный общий способ взгляда на мир, который сможет обеспечивать как понимание человеком, так и машиной.

Подход с использованием «классов, объектов, свойств, событий и методов», о котором было рассказано в истории, не является безупречным. Это только один из способов, который можно выбрать для объяснения окружающего нас мира пришельцу. Важно то, чтобы вы оба договорились об описании мира единым образом. Такой взгляд на мир, который, между прочим, называется «объектно-ориентированным» подходом, стал очень популярным способом описания вещей компьютерам, и фактически, язык C# требует придерживаться именно его.

Итак, изучение языка C# это изучение способов описания вещей при помощи классов, объектов, событий, методов и т.д.

Если вы хотите, чтобы компьютер помог в выполнении необходимых вам действий, то:

  • Вам (как человеку) нужно выучить язык C# и научиться описывать вещи с ориентацией на объекты.
  • Вам необходимо установить приложение C# и другие сопутствующие программы. Теперь и компьютер сможет понимать язык C# и сможет работать с объектами, описанными в соответствии с объектно-ориентированным подходом.

Вот и все! Вы с компьютером имеете общее представление мира, а также язык, и вскоре будете общаться как старые приятели.

Позвольте теперь описать значение ориентации на объекты с точки зрения программиста.

  • Окружающий нас мир можно разделить на различные классы вещей, такие как «коты» или «дома» или «деревья». Такие классы можно считать категориями или метками для группировки сходных объектов. Задача заключается в поиске способа описания таких классов для компьютера, чтобы он мог выполнять с ними действия.
  • Каждый класс вещей включает определенные объекты, которые и нужны нам. Например, в класс «кот» входит мой кот Пушок, который является объектом класса котов. Подобным образом, розовый дом на углу моей улицы является объектом класса «дом», а дуб, видимый из окна моей спальни, является объектом класса «дерево». Если есть определенный объект, с которым должен работать компьютер, то нам необходимо создать некоторое описание для компьютера, которое представляет такой объект.
  • Для объектов характерны различные свойства. Свойства служат для более четкого описания объектов. Их можно сравнить с прилагательными в русском языке. Например, моего Пушка можно описать такими свойствами как рост, вес и рядом других.
  • События — это изменения, происходящие с объектом. В реальном мире события происходят вокруг нас непрерывно. Например, когда я глажу Пушка, это событие происходит с ним. Подобным образом, ветер, развевающий ветви дуба, видимого из моего окна — это событие, происходящее с деревом. События, как правило, представляют собой действия, воздействующие на определенный объект, но сам объект повлиять на них не может. В компьютерном мире событиями могут быть «нажатие кнопки» или «перемещение мыши».
  • Действия выполняются объектом. Например, кот Пушок лижет свою шерсть — это действие. В компьютерном мире, иногда, когда происходят интересные события, мы хотим, чтобы выполнялись определенные действия, например «рисование изображения кота при нажатии на кнопку».
  • Хотите верьте, хотите нет, но компьютеры по-настоящему глупы. Компьютер не имеет представления о том, как нарисовать кота. Поэтому необходимо дать описание, которое будет понятно компьютеру — метод рисования кота. Метод представляет собой набор пошаговых инструкций, которые определяют порядок рисования кота, подобно рецепту.

В последующих главах мы рассмотрим каждый аспект объектно-ориентированного программирования и приведем более детальное описание. Мы также подробно изучим как программировать на языке C#.

Окружающий нас мир можно разделить на различные группы вещей. Назовем их классами.

В качестве одного из явных примеров рассмотрим классы в школе. Детей определенного возраста или с определенными способностями можно объединить в группу и назвать ее классом. Это позволит уровнять детей. Все они будут обучаться примерно одинаково и сдавать одни экзамены.

Но это не означает, что все ученики класса одинаковы, а лишь говорит о том, что у них имеются определенные общие черты.

Рассмотрим другой пример: группу всех живых организмов можно объединить в два класса — «растения» и «животные».

Теперь, вернемся к задаче выражения своих мыслей таким образом, чтобы компьютер смог понять то, что мы пытаемся сказать.

В C# описание класса для компьютера может иметь следующий вид:

class Animal

{

 

}

 

Из этого небольшого отрывка кода компьютер теперь понимает, что

  • мы собираемся обсуждать класс объектов
  • мы назовем этот класс Animal
  • все описание этого класса будет расположено между фигурными скобками { … }.

В то время как имя класса «Animal» определенно будет нести смысл в программе, выводящей на экран изображения животных или сохраняющей интересные факты о них, также возможны такие классы как «MyPhotoProgram» или «MyGradeCalculator». Итак нужно понимать, что классы совсем не обязательно работают с объектами, существующими в реальном мире — имя классу дается для описания того, с чем он имеет дело.

Компьютеру известно слово «class», которое должно быть написано строчными буквами, но имя класса может быть любым и содержать как прописные, так и строчные буквы. Использование пробелов не допускается.

Для упрощения чтения и понимания код следует писать на отдельных строках, но для компьютера нет принципиальной разницы. Например, код может выглядеть следующим образом:

Строительный блок: Классы
Все программы на языке C# создаются внутри классов. Основная структура класса для компьютера имеет следующий вид: class Animal {   }   class Animal { }  

Немного позже мы расскажем о том, что происходит внутри описания класса (между фигурными скобками). Но сначала мы обсудим объекты.

Каждый класс содержит ряд реальных объектов. Например, в классе объектов «Animal» могут присутствовать определенные существа:

  • Тетин кот «Барсик»
  • Корова, увиденная вами однажды, прозвище которой вам неизвестно
  • Горилла по прозвищу Джереми
  • и другие объекты.

В предыдущем уроке вы узнали как завести разговор с компьютером о классе животных в общем, но, возможно, в какой-то момент времени вы захотите рассказать что-то об одном или нескольких определенных объектах. Например, что «есть определенное существо в классе животных, которое вы называете Барсиком».

Это можно выразить следующим образом:

Animal Barsik;

 

Мы написали небольшой отрывок кода, и здесь нужно остановиться чтобы подумать, иначе можно упустить главную мысль. Компьютер понимает следующее: «Этот человек хочет поговорить об объекте в классе «Animal» и назвать его «Barsik». Я не знаю, что такое Barsik, но если человек хочет это так называть, то мне все равно».

Однако нам нужно дополнить приведенный выше код еще одним выражением:

Barsik = new Animal();

 

Может показаться странным, почему нужно сделать именно так. Но с точки зрения компьютера в этом есть смысл. Подумайте как машина и представьте следующее:

  • Первое выражение предупреждает компьютер, что вскоре мы попросим его работать с определенным индивидуумом в классе «Animal». Теперь у компьютера появляется возможность проверить свои знания об этом классе. Он просматривает всю программу и ищет описание класса с именем «Animal». Если он не находит такого объекта, то может предупредить вас: «Эй, я не смогу этого сделать!». Если же удается найти нужное описание, он просто продолжит выполнение программы, приняв во внимание, что вы позже попросите его выполнить некоторое действие с объектом класса «Animal» по имени Barsik.
  • Несколько позже мы добавим второе выражение, которое скажет компьютеру: «Эй, помнишь объект Barsik? Теперь мне нужно выполнить с ним действие. Освободи пространство в голове для размышления об этом животном. Компьютер представляет новый объект «Animal» в своей голове и понимает, что вы говорите о том же объекте (Barsik), упомянутом ранее. Изучив класс «Animal», компьютеру стало кое-что известно о Барсике, и он держит эту информацию наготове в своей голове в надежде на то, что получит от вас дополнительные данные или несколько вопросов о Барсике.

Теперь давайте рассмотрим все три момента и представим как компьютер «думает» о них

Заметьте, в первом блоке мы описываем класс объектов в общем, а в блоках 2 и 3 мы выделили определенный объект в классе Animal.

Строительный блок: Объекты
Объекты — это определенные отдельные элементы некоторого класса. Класс просто описывает «на что похожи эти объекты» в общем. Таков основной план создания объекта. class Animal { } Если планируется работать с определенным объектом, необходимо заранеесообщить компьютеру, к какому классу он принадлежит, так чтобы сначала компьютер проверил свои знания об этом классе. Для этого мы указываем имя класса,а затем даем объекту имя на выбор.
Имя класса   Имя объекта
Animal   percyThePorcupine;

Этот процесс называется «объявлением объекта».

Когда же мы будем готовы работать с этим объектом, мы должны попросить компьютер «создать экземпляр» класса. Теперь на основе своих знаний о классе компьютер создает реальный объект, с которым он сможет выполнять действия.

percyThePorcupine = new Animal();

В этом примере «percyThePorcupine» теперь является экземпляром «Animal» или можно сказать, что percyThePorcupine это «объект» типа «Animal». Но в любом случае теперь нам точно известно, что мы говорим об определенном объекте класса «Animal». Это называется «созданием объекта».

Теперь мы знаем, как рассказать об определенном объекте в классе, но поскольку определяемый нами класс достаточно прост (ну да, согласен, он полностью пуст), то с ним совсем неинтересно работать. Итак, в следующем уроке мы добавим некоторые элементы к нашему классу.

Если бы я попросил вас перечислить несколько свойств животных, то скорее всего список был бы следующим:

  • Вид животного (Kind of animal)
  • Рост (Height)
  • Длина (Length)
  • Количество лап (Number of legs)
  • Окрас (Color)
  • Наличие хвоста (Has a tail)
  • Млекопитающее (Is a mammal)

При рассмотрении свойств этих животных вы можете присвоить значения каждому из них

  • Kind of animal = «Cat»
  • Height = 50 cm (большой котяра!)
  • Length = 110 cm
  • Number of legs = 4
  • Color = «Black»
  • Has tail = true
  • Is mammal = true

В C# эти свойства обычно называются полями. (Слово «свойства» используется несколько для другой цели, и здесь мы не станем вдаваться в подробности).

Теперь рассмотрим кое-что, о чем в реальном мире не приходится особо беспокоиться, но для компьютеров имеет огромное значение: Несмотря на то, что все указанные выше свойства кажутся однородными, фактически существуют различные типы полей. Приведем несколько примеров.

  • Значения полей height, width и number of legs являются числами. Как правило, нам необходимо, чтобы компьютер использовал эти значения для выполнения математических операций. Так происходит в большинстве случаев.

Эти поля можно было бы назвать следующим образом: «numberOfBananas», «numberOfPeople» и «numberEachOneGets». Они должны иметь числовой тип, поскольку нам необходимо выполнить с ними некий расчет при помощи математического деления.

Примечание. В языке C#, имена полей не могут содержать пробелы. Используйте простые символы, такие как буквы и числа.

  • Значения полей kind of animal и color состоять из букв, скрепленных вместе — в этом случае буквы составляют слова «cat» и «black».

При этом стоит отметить, что и строковые поля могут также содержать числа. Например, строковое поле может содержать следующий текст: «Сегодня это уже 17 крокодил, которого я вижу!». В этой строке присутствуют буквы алфавита, пробелы, числа и знаки препинания. Но с числами в строке нельзя выполнять математические операции.

  • Поле типа has tail всегда будет принимать значение ИСТИНА или ЛОЖЬ (true/false), также как и любые поля типа ДА или НЕТ («yes/no»).

Каждый «тип» обрабатывается компьютером по-разному, поэтому при определении полей мы должны указывать их тип. В одной программе мы можем определить обработку поля number of legs как строки с буквами, поскольку нас не интересуют математические операции с этим свойством, в то время как в другом случае может потребоваться использование такого поля как числового, так как нам понадобится узнать сколько конечностей у 500 таких объектов.

Тип «String» (строка)

Чтобы сообщить компьютеру, что некое свойство нужно рассматривать как строку букв, необходимо просто дополнить код следующим образом:

string kindOfAnimal;

 

Пока мы не указываем значение в этом поле, а просто сообщаем компьютеру с каким типом данных будем работать и присваиваем полю имя. Поставьте себя на место компьютера и представьте как бы вы отреагировали, если бы человек написал для вас следующее.

Числовые типы

Чтобы сообщить компьютеру, что значение поля нужно рассматривать как число, необходимо выбрать один из нескольких числовых типов, известных в языке C#. Наиболее распространенный из них — integer. Из курса математики вы должны знать, что это не что иное как целое число, которое может быть отрицательным, положительным или нулем.

Простой способ дать компьютеру понять, что значение поля должно быть целым числом, следующий:

int numberOfLegs;

 

А так будет думать наш цифровой друг...

Тип «Boolean» (логическое значение)

Если вам известно, что некоторое поле будет всегда принимать значение «true» или «false» и ничего кроме этих значений, то использование поля типа «true/false» в C# может оказаться полезным. У такого типа поля достаточно странное название (Boolean) по имени математика Джорджа Буля, но на самом деле это самый простой из всех типов.

Чтобы сообщить компьютеру, что поле «hasTail» должно принимать значения «true/false», используйте следующий код:

bool hasTail;

 

Машина будет думать следующим образом.

Итак, поля представляют собой элементы информации, позволяющие лучше описать объекты в классе. Они всегда имеют определенный тип.

Добавление полей в класс

Ранее, когда мы сообщили компьютеру о классе животных, мы просто назвали класс «Animal», включили в код фигурные скобки и пообещали, что позже расскажем о нем больше, а точнее о том, что находится внутри него:

class Animal

{

...

}

 

Ну что же, теперь мы готовы к этому. Давайте добавим несколько полей в определение класса.

class Animal

{

string kindOfAnimal;

string name;

int numberOfLegs;

int height;

int length;

string color;

bool hasTail;

bool isMammal;

bool spellingCorrect;

}

 

(Чтобы код был аккуратным и легкочитаемым, обычно создаются отступы полей, как показано выше. Для этого используйте клавишу TAB на клавиатуре. Можно также выделить несколько строк и сразу создать отступы при помощи клавиши TAB.)

Использование полей с определенными объектами

Итак, теперь мы объяснили компьютеру, что ВСЕ объекты класса «Animal» имеют эти поля. Теперь давайте попросим компьютер создать экземпляр, представляющий определенный объект класса «Animal» (как мы делали это в предыдущей главе) и сообщим компьютеру некоторую информацию об этом определенном объекте, присвоив значения каждому полю.

Animal Barsik;

Barsik = new Animal ();

 

Barsik.kindOfAnimal = " Cat ";

Barsik.name = " Кот Барсик ";

Barsik.numberOfLegs = 4;

Barsik.height = 50;

Barsik.length = 110;

Barsik.color = " Black ";

Barsik.hasTail = true;

Barsik.isMammal = true;

 

Обратите внимание, что значение строковых полей всегда заключается в кавычки (""), но только не значения других типов полей. В конце каждого выражения ставится точка с запятой (;).

На данном этапе стоит упомянуть, что выбранное нами имя объекта «Barsik» не несет никакого эмоционального значения для компьютера. Он бы также легко работал с объектом, если бы мы заменили все имена «Barsik» на «X» или любое другое имя на выбор:

Animal X;

X = new Animal ();

 

X.kindOfAnimal = " Cat ";

X.height = 50;

X.length = 110;

X.color = " Black ";

X.hasTail = true;

X.isMammal = true;

 

Хотя поля могут располагаться на границе страницы, считается хорошей привычкой придерживаться отступов при помощи табуляции от правого края, которые можно создать при помощи клавиши TAB на клавиатуре. Это упрощает чтение кода.

Поля всегда имеют определенный тип. Существует много различных допустимых типов, вот описание некоторых наиболее распространенных из них:

Строительный блок: Поля
Обычно в классе присутствует одно или несколько полей, которые позволяют описывать определенные черты такого класса. class SchoolKid { string firstName; string lastname; int age; bool isWideAwake; }  
Тип Его значение Примеры значений.
string Данный тип поля в основном используется для слов и предложений, состоящих из «связанных» букв алфавита и некоторых других символов «Sam» «Eight-legged Octopus» «Girls are too clever to fall out of their prams»
int Сокращение от слова «integer», представляющее целое число. -520
bool Сокращение от слова «boolean», которое в принципе означает «true/false» true false
       

 

При определении поля в программе необходимо указать его тип и имя:

string lastname;

 

Обозначение типа должно быть известно компьютеру. Указанные выше основные типы (как int) пишутся строчными буквами, однако некоторые типы могут содержать прописные буквы.

В качестве имени поля можно использовать любое слово, например «VsegdaNacheku» с сочетанием заглавных и строчных букв. Использование пробелов не допускается.

При работе с определенным объектом, полям обычно присваиваются значения, которые помогают описывать объект. Если, например, у нас есть объект с именем schoolKid, то его полям можно было бы пр



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-28 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: