| netlib.narod.ru | < Назад | Оглавление | Далее > |
Пространства имен также играют важную роль в документировании .NET. Например, документацию по классу Console нужно искать в документации пространства имен System. Вы увидите, что WriteLine — не единственный метод вывода класса Console. Метод Write очень похож на WriteLine тем, что также осуществляет вывод на консоль. Отличие в том, что WriteLine завершает свой вывод возвратом каретки.
Имеется 18 описаний метода Write и 19 — метода WriteLine, каждое со своими параметрами. Такое использование нескольких версий одного и того же метода известно как перегрузка (overload). Компилятор обычно по количеству и типам передаваемых параметров может определить, какой из перегруженных методов нужно вызвать программе.
Следующая программа демонстрирует три разных способа вывода одной и той же информации.
ConsoleAdder.cs
//--------------------------------------------------
// ConsoleAdder.cs (C) 2001 by Charles Petzold
//--------------------------------------------------
using System;
class ConsoleAdder
{
public static void Main()
{
int a = 1509;
int b = 744;
int c = a + b;
Console.Write("Сумма ");
Console.Write(a);
Console.Write(" и ");
Console.Write(b);
Console.Write(" равна ");
Console.WriteLine(c);
Console.WriteLine("Сумма " + a + " и " + b + " равна " + c);
Console.WriteLine("Сумма {0} и {1} равна {2}", a, b, c);
}
}
Программа выведет:
Сумма 1509 и 744 равна 2253 Сумма 1509 и 744 равна 2253 Сумма 1509 и 744 равна 2253
Программистов, использующих язык С, обнадежит тот факт, что С# поддерживает знакомый тип int и не использует оператор присваивания :=, как Algol или Pascal.
В первом способе программа для показа строки использует вызываемые по отдельности методы Write и WriteLine, каждый из которых принимает один параметр. Write и WriteLine могут принимать параметры любых типов и преобразовывать их в строку для показа.
Во втором способе применяется техника, непривычная для программистов на С, зато хорошо знакомая программистам на BASIC, — конкатенация строк при помощи знака «+». С# преобразует переменные в строки, объединяет все строки в единое целое и передает результат в функцию WriteLine. В третьем способе используется строка форматирования с тремя полями подстановки — {0}, {1} и {2} — для трех других параметров. Поля подстановки могут содержать дополнительную информацию для форматирования. Скажем, {0:С} представляет число как денежную сумму: показывается знак доллара (или другой символ валюты в зависимоcти от региональных параметров ОС), запятая, два десятичных знака, если число отрицательное, то строка заключается в скобки. Поле подстановки {0:-Х8} показывает число в шестнадцатеричном виде, при необходимости дополняя его нулями до 8 знаков. Вот некоторые примеры спецификаций формата в применении к целому числу 12 345:
Различные спецификации формата в применении к целому числу 12345
| Тип форматирования | Код формата | Результат |
| Currency (денежные суммы) | C | $12345.00 |
| C1 | $12,345.0 | |
| C7 | $12,345.0000000 | |
| Decimal (десятичный) | D | 12345 |
| D1 | 12345 | |
| D7 | 0012345 | |
| Exponential (экспоненциальный) | E | 1.234500E+004 |
| E1 | 1.2E+004 | |
| E7 | 1.2345000E+004 | |
| Fixed point (с фиксированной точкой) | F | 12345.00 |
| F1 | 12345.0 | |
| F7 | 12345.0000000 | |
| General (общий) | G | 12345 |
| G1 | 1E4 | |
| G7 | 12345 | |
| Number (числовой) | N | 12,345.00 |
| N1 | 12,345.0 | |
| N7 | 12,345.0000000 | |
| Percent (процент) | P | 1,234,500.00 |
| P1 | 1,234,500.0 | |
| P7 | 1,234,500.0000000 | |
| Hexadecimal (шестнадцатеричный) | X | 3039 |
| X1 | 3039 | |
| X7 | 0003039 | |
Даже если вы не собираетесь использовать вывод на консоль при программировании для .NET, вполне вероятно, что эти спецификации формата пригодятся вам при работе с методом String.Format. Точно так же, как Console.Write и Console.WriteLine являются в .NET аналогами функции С printf, метод String.Format в .NET аналогичен функции sprintf.
| netlib.narod.ru | < Назад | Оглавление | Далее > |