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

public static void Main (string[] args)

 int option = int.Parse(arg[0]);

 if (option == 1) {

  // что-нибудь сделать

 }

 else if (option == 2) {

  // сделать что-нибудь еще

 }

 switch (option) {

 case 1:

  // сделать что-нибудь

  break;

 case 2:

  // сделать что-нибудь еще

 default:

  break;

 }

}

C# вводит инструкцию foreach, используемую специально для перебора без изменения элементов коллекции или массива, чтобы получить желаемую информацию. Изменение содержимого может иметь непредсказуемые побочные эффекты. Инструкция foreach обычно имеет форму, показанную ниже:

foreach(ItemType item in TargetCollection)

ItemType представляет тип данных, хранящихся в коллекции или массиве, a TargetCollection представляет реальный массив или коллекцию. Существует два набора требований, которым должна удовлетворять коллекция, перебор элементов которой будет выполняться с помощью инструкции foreach. Первый набор имеет отношение к составу самой коллекции. Это следующие требования:

□ Тип коллекции должен быть интерфейсом, классом или структурой.

□ Тип коллекции должен включать метод GetEnumerator() для возврата типа перечислителя. Тип перечислителя является по сути объектом, который позволяет перебрать коллекцию элемент за элементом.

Второй набор требований имеет дело с составом типа перечислителя, возвращаемого упомянутым выше методом GetEnumerator(). Список требований дан ниже:

□ Перечислитель должен предоставить метод MoveNext() типа boolean.

□ MoveNext() должен возвращать true, если в коллекции есть еще элементы.

□ MoveNext() должен увеличивать счетчик элементов при каждом вызове.

□ Тип перечислителя должен предоставлять свойство с именем Current, которое возвращает ItemType (или тип, который может быть преобразован в ItemType).

□ Метод доступа свойства должен возвращать текущий элемент коллекции.

Следующий пример использует foreach для просмотра таблицы Hashtable:

Hashtable t = new Hashtable();

t['a'] = 'hello';

t['b'] = 'world';

t['c'] = 'of';

t['d'] = 'c-sharp';

foreach (DictionaryEntry b in t) {

 Console.WriteLine(b.Value);

}

Ключевые слова модификации доступа: private, protected, public, и (пакет по умолчанию)

Ключевое слово private используется, чтобы сделать методы и переменные доступными только изнутри элементов содержащего их класса. Функциональность одинакова в обоих языках, модификатор public позволяет сущностям вне пакета получить доступ к внутренним элементам. Конечно, для C# это будут сущности вне пространства имен, а не пакета.

C# и Java различаются в том, как обрабатываются protected и 'default'. В то время как в Java protected делает метод или переменную доступной для классов в том же пакете или подклассах класса, protected в C# делает код видимым только для этого класса и подклассов, которые от него наследуют.

C# вводит также новый модификатор доступа — internal. Ключевое слово internal изменяет члены данных так, что они будут видимы всему коду внутри компонента, но не клиентам этого компонента. Различие здесь между модификатором в Java, который указывает элемент, доступный только для элементов в пакете, и internal состоит в том, что internal доступен всем элементам сборки, которая может охватывать несколько пространств имен. Сборки и пространства имен будут рассмотрены позже в этом приложении.

Модификаторы: abstract, class, extends, final, implements, interface, native, new static, synchronized, transient, volatile

Модификатор abstract имеет одну и ту же форму и синтаксис в обоих языках. Таким же является ключевое слово class. C# не имеет модификаторов extends или implements. Чтобы вывести из класса или реализовать интерфейс, используйте оператор :. Когда список базового класса содержит базовый класс и интерфейсы, базовый класс следует первым в списке. Ключевое слово interface используется для объявления интерфейса. Примеры рассмотренных ранее концепций приведены ниже:

class ClassA: BaseClass, Iface1, Iface2 {

 // члены класса

}

public interface IfruitHaver {

 public void Fruit();

}

public class plant: IfruitHaver {

 public Plant() {

 }

 public void Fruit() {

 }

}

class Tree : Plant {

 public Tree() {

 }

}

Ключевое слово final в Java трудно отнести к какой-то категории. Частично причина

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату