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

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

Жанры

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

Ватсон Карли

Шрифт:

this.cmdShowResults, this.txtResult, this.txtSign, this.txtNumber

});

this.Name = "Form1";

this.Text = "Square Root C# Sample";

this.ResumeLayout(false);

}

#endregion

/// <summary>

/// Обработчик событий для нажатия пользователем кнопки Show Results

///
Выводит квадратный корень и знак числа

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void OnClickShowResults(object sender, System.EventArgs e) {

float NumberInput = float.Parse(this.txtNumber.Text);

if (NumberInput < 0) {

this.txtSign.Text = "Negative";

this.txtResult.Text = Math.Sqrt(-NumberInput) + " i";

} else if (NumberInput == 0) {

txtSign.Text = "Zero";

txtResult.Text = "0";

} else {

this.txtSign.Text = "Positive";

this.txtResult.Text = Math.Sqrt(NumberInput).ToString;

}

}

 }

 class MainEntryClass {

/// <summary>

/// Основная точка входа приложения.

/// </summary>

[STAThread]

static void Main {

SquareRootForm TheMainForm = new SquareRootForm;

Application.Run(TheMainForm);

}

 }

}

Пространства имен

Основная часть исходного кода

SquareRoot
на C# начинается с объявлений пространств имен и класса:

namespace Wrox.ProfessionalCSharp.AppendixC.SquareRootForm {

 public class SquareRootForm : System.Windows.Forms.Form {

Класс

SquareRootForm
будет содержать почти весь код — все методы и т.д. с небольшим объемом кода, находящимся в классе с именем
MainEntryClass
. Помните что легче всего здесь представлять класс как объект класса VB, хотя есть одно различие, состоящее в том, что реально виден исходный код, который начинается с объявления класса. В VB среда разработки — это просто отдельное окно, содержащее код класса.

Пространство имен не имеет аналогии в VB и проще всего представить его как способ организации имен классов таким образом, как файловая система организует имена файлов. Например, почти наверняка на жестком диске имеется большое количество

файлов, которые имеют имя
ReadMe.txt
. Если бы это имя было единственной информацией о каждом файле, то невозможно было бы различить все эти файлы. Но есть полные имена доступа, например,
C:\Program Files\ReadMe.txt
и
G:\Program Files\HTML Help Workshop\ReadMe.txt
.

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

SquareRootForm
, a
Wrox.ProfessionalCSharp.AppendixC.SquareRootForm
. Крайне маловероятно, что кто-то будет записывать класс с этим полным именем. С другой стороны, если бы не было пространства имен, то существовал бы большой риск путаницы, так как кто-нибудь еще мог бы написать класс с именем
SquareRootForm
.

Исключение конфликтов такого рода важно в C#, так как рабочая среда .NET использует только эти имена для идентификации классов, в то время как элементы управления ActiveX, созданные VB, применяют для ухода от конфликтов имен сложный механизм, включающий GUID. Компания Microsoft предпочла более простую концепцию пространств имен в связи с опасениями, что некоторые сложности COM, такие как GUID, сделают неоправданно трудным для разработчиков создание хороших приложений Windows.

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

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

namespace Wrox.ProfessionalCSharp.AppendixC.SquareRootSample {

 public class SquareRootForm : System.Windows.Forms.Form {

// и т.д.

 }

}

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

namespace Wrox {

 namespace ProfessionalCSharp {

namespace AppendixC {

namespace SquareRootSample {

public class SquareRootForm : System.Windows.Forms.Form {

// и т.д.

}

}

}

 }

}

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

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

Генерал Скала и сиротка

Суббота Светлана
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Генерал Скала и сиротка

Часограмма

Щерба Наталья Васильевна
5. Часодеи
Детские:
детская фантастика
9.43
рейтинг книги
Часограмма

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2

Назад в СССР 5

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

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Скрываясь в тени

Мазуров Дмитрий
2. Теневой путь
Фантастика:
боевая фантастика
7.84
рейтинг книги
Скрываясь в тени

Пятничная я. Умереть, чтобы жить

Это Хорошо
Фантастика:
детективная фантастика
6.25
рейтинг книги
Пятничная я. Умереть, чтобы жить

Измена. Наследник для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Измена. Наследник для дракона

На границе империй. Том 10. Часть 5

INDIGO
23. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 5

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Право на эшафот

Вонсович Бронислава Антоновна
1. Герцогиня в бегах
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Право на эшафот