Вход/Регистрация
C# 4.0 полное руководство - 2011
вернуться

Шилдт Герберт

Шрифт:

using System;

class Rect {

public int Width; public int Height;

public Rect(int w, int h) {

Width = w;

Height = h;

}

public int Area {

return Width * Height;

}

}

class UseRect {

static void Main {

Rect rl = new Rect(4, 5);

Rect r2 = new Rect(7, 9);

Console.WriteLine("Площадь прямоугольника rl: " + rl.AreaO);

Console.WriteLine("Площадь прямоугольника r2: " + r2.Area);

}

}

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

return Width * Height;

в методе Area означает, что копии переменных Width и Height, связанные с вызывающим объектом, будут перемножены, а метод возвратит их произведение. Но тот же самый оператор можно написать следующим образом.

return this.Width * this.Height;

В этом операторе ключевое слово this обозначает объект, для которого вызван метод Area . Следовательно, в выражении this .Width делается ссылка на копию переменной Width данного объекта, а в выражении this . Height — ссылка на копию переменной Height этого же объекта. Так, если бы метод Area был вызван для объекта х, то ключевое слово this в приведенном выше операторе обозначало бы ссылку на объект х. Написание оператора без ключевого слова this представляет собой не более чем сокращенную форму записи.

Ключевое слово this можно также использовать в конструкторе. В этом случае оно обозначает объект, который конструируется. Например, следующие операторы в методе Rect

Width = w;

Height = h;

можно было бы написать таким образом.

this.Width = w; this.Height = h;

Разумеется, такой способ записи не дает в данном случае никаких преимуществ. Ради примера ниже приведен весь класс Rect, написанный с использованием ссылки this.

using System;

class Rect {

public int Width; public int Height;

public Rect(int w, int h) { this.Width = w; this.Height = h;

}

public int Area {

return this.Width * this.Height;

}

}

class UseRect {

static void Main {

Rect rl = new Rect(4, 5);

Rect r2 = new Rect(7, 9);

Console.WriteLine("Площадь прямоугольника rl: " + rl.AreaO);

Console.WriteLine("Площадь прямоугольника r2: " + r2.Area);

}

}

В действительности ключевое слово this не используется приведенным выше способом в программировании на С#, поскольку это практически ничего не дает, да и стандартная форма записи намного проще и понятнее. Тем не менее ключевому слову this можно найти не одно полезное применение. Например, в синтаксисе C# допускается называть параметр или локальную переменную тем же именем, что и у переменной экземпляра. В этом случае имя локальной переменной скрывает переменную экземпляра. Для доступа к скрытой переменной экземпляра и служит ключевое слово this. Например, приведенный ниже код является правильным с точки зрения синтаксиса C# способом написания конструктора Rect .

public Rect(int Width, int Height) { this.Width = Width; this.Height = Height;

}

В этом варианте написания конструктора Rect имена параметров совпадают с именами переменных экземпляра, а следовательно, скрывают их. Но для "обнаружения" скрытых переменных служит ключевое слово this.

ГЛАВА 7 Массивы и строки

В этой главе речь вновь пойдет о типах данных в С#. В ней рассматриваются массивы и тип string, а также оператор цикла fore a ch.

Массивы

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

  • Читать дальше
  • 1
  • ...
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: