Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:
Ключевые слова-переменные: this, void и super

Эти ключевые слова сами являются переменными. Оба языка, Java и C#, имеют по три ключевых слова, которые попадают в эту категорию. Ключевые слова

this
и
void
обладают в обоих языках одинаковой функциональностью.

super
— эта ссылочная переменная используется для указания класса-предка. В C# эквивалентом является
base
. Возьмем класс
Power
, который предоставляет возможность найти степень заданного числа и степень, в которую требуется возвести (при условии, что не происходит
переполнение):

public class SuperEX {

 int power;

 public SuperEX(int power) {

this.power = power;

 }

 public int aMethod(int x) {

int total = 1;

for (int i = 0; i < power; i++) {

total *= x;

}

return total;

 }

 public static void main(String args[]) {

SuperEX x = new SuperEX(Integer.parseInt(args[0]));

int tot = x.aMethod(Integer.parseInt(args[1]));

System.out.println(tot);

 }

}

Класс-потомок этого класса сможет получить доступ к методу

aMethod
с помощью вызова
super.aMethod(<int value>)
, к переменной
power
— с помощью вызова
super.power = <int value>
, и даже к конструктору — с помощью вызова
super(<int value>)
, где
<int value>
может быть любым целым литералом, переменной или константой.

Аналогично в C# класс-потомок этого класса сможет получить доступ к методу

aMethod
с помощью вызова
super.aMethod(<int value>)
и к переменной
power
— с помощью вызова
super.power = <int value>
. Сделать вызов базового конструктора тоже возможно, синтаксис, однако, будет отличаться. Пример ниже является эквивалентом в C# для SuperEX:

namespace SuperEX {

 using System;

 public class SuperEX {

internal int power;

public SuperEX(int power) {

this.power = power;

}

public int aMethod(int x) {

int total = 1;

for (int i = 0; i < power; i++) {

total *= x;

}

return total;

}

public static void Main(String [] args) {

SuperEX x = new SuperEX(int.Parse(args[0]));

int tot = x.aMethod(int.Parse(args[1]));

Console.WriteLine(tot);

}

 }

 public class Child: SuperEX {

public Child : base(55) { }

 }

}

Как

можно видеть на примере класса-потомка
Child
, вызов конструктора базового класса является частью объявления конструктора класса-потомка. Программист может по своему усмотрению определить список параметров конструктора класса-потомка, но ссылка на конструктор базового класса должна соответствовать списку аргументов, требуемых базовым классом. В данном примере конструктор потомка может получить форму
<child constructor>: base constructor(<int value>)
, где
<int value>
может быть любым целым литералом, переменной или константой, a
<child constructor>
представляет любой конструктор потомка, который хочет воспользоваться конструктором базового класса. Более общая версия, как получить доступ к конструктору базового класса, представлена ниже:

ChildConstructor(argument_list) : BaseConstructor(argument_list)

Ключевые слова управления пакетами: import и package

Так же как в Java, в C# инструкции

import
предоставляют доступ к пакетам и классам в коде без полной квалификации, директива
using
может использоваться для того, чтобы сделать компоненты пространства имен видимыми в классе без полной квалификации. В C# не существует эквивалента инструкции
package
. Чтобы сделать класс частью пространства имен, надо поместить его в объявление пространства имен. Пространства имен будут обсуждаться более подробно позже в этой главе.

Ключевые слова управления потоком выполнения и итерациями: break, case, continue, default, do, else, for, if, instanceof, return, switch и while

Большинство упомянутых выше ключевых слов имеют одинаковые имена, синтаксис и функциональность в C# и Java. Исключением является оператор Java

instanceof
, используемый для определения того, что объект является экземпляром класса или некоторого подкласса этого класса. 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)

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

Возрождение Феникса. Том 2

Володин Григорий Григорьевич
2. Возрождение Феникса
Фантастика:
фэнтези
попаданцы
альтернативная история
6.92
рейтинг книги
Возрождение Феникса. Том 2

Вперед в прошлое 3

Ратманов Денис
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 3

Сумеречный Стрелок 4

Карелин Сергей Витальевич
4. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 4

Аномалия

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Аномалия

Весь цикл «Десантник на престоле». Шесть книг

Ланцов Михаил Алексеевич
Десантник на престоле
Фантастика:
альтернативная история
8.38
рейтинг книги
Весь цикл «Десантник на престоле». Шесть книг

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Дело Чести

Щукин Иван
5. Жизни Архимага
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Дело Чести

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Я Гордый часть 2

Машуков Тимур
2. Стальные яйца
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый часть 2

Начальник милиции 2

Дамиров Рафаэль
2. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции 2

Авиатор: назад в СССР 10

Дорин Михаил
10. Покоряя небо
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Авиатор: назад в СССР 10

Курсант: Назад в СССР 11

Дамиров Рафаэль
11. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 11

Адепт. Том 1. Обучение

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
9.27
рейтинг книги
Адепт. Том 1. Обучение