
- •Лекция 8. Ввод и вывод данных в с#
- •Потоки: байтовые, символьные, двоичные
- •Общая характеристика классов потоков
- •Предопределенные потоки ввода/вывода
- •Функция ToString()
- •Консольный ввод/вывод. Функции – члены класса Console
- •Консольный вывод. Форматирование
- •Нестандартное (custom) форматирование значений
- •Консольный ввод. Преобразование значений
Функция ToString()
C# является языком, строго и в полном объеме реализующим принципы ООП. В этом языке все построено на классах и нет ничего, что бы ни соответствовало принципам объектно-ориентированного программирования. Любой элементарный тип является наследником общего класса Object, реализующего, в частности, метод String ToString(), формирующий в виде human-readable текстовой строки описание тех или иных характеристик типа и значений объектов – представителей данного типа. Любой тип – наследник класса Object (а это ВСЕ типы!) имеет либо унаследованную, либо собственную переопределенную версию метода ToString(). Применительно к объектам предопределенного типа из CTS, соответствующие версии методов ToString() обеспечивают преобразование значения данного типа к строковому виду.
Все сделано для программиста. Реализация метода преобразования значения в строку в конечном счете оказывается скрытой от программиста. Именно поэтому вывод значений предопределенных типов с использованием функций Write и WriteLine в программах на языке C# осуществляется так легко и просто. В справочнике по поводу этих функций так и сказано:
The text representation of value is produced by calling Type.ToString.
Эта функция имеет перегруженный вариант, использующий параметр типа string для указания желаемого формата представления. Множество значений этого параметра ограничено предопределенным списком символов форматирования (представлены ниже), возможно, в сочетании с целочисленными значениями.
Символ форматирования |
Описание |
C |
Отображение значения как валюты с использованием принятого по соглашению символа |
D |
Отображение значения как десятичное целое |
E |
Отображение значения в соответствии с научной нотацией |
F |
Отображение значения как fixed Point |
G |
Отображение значения в формате с фиксированной точкой или как десятичное целое. Общий формат |
N |
Применение запятой для разделения порядков |
X |
Отображение значения в шестнадцатеричной нотации |
Непосредственно за символом форматирования может быть расположена целочисленная ограничительная константа, которая, в зависимости от типа выводимого значения, может определять количество выводимых знаков после точки либо общее количество выводимых символов. При этом дробная часть действительных значений округляется или дополняется нулями справа. При выводе целочисленных значений ограничительная константа игнорируется, если количество преобразуемых символов превышает ее значение. В противном случае преобразуемое значение слева дополняется нулями.
Форматирование используется для преобразования значений "обычных" .NET Framework типов данных в строковое представление, да еще в соответствии с каким-либо общепринятым форматом. Например, целочисленное значение 100 можно представить в общепринятом формате currency для отображения валюты. Для этого можно использовать метод ToString() с использованием символа (строки?) форматирования ("C"). В результате может быть получена строка вида "$100.00". И это при условии, что установки операционной системы компьютера, на котором производится выполнение данного программного кода, соответствуют U.S. English specified as the current culture (имеется в виду "Настройка языковых параметров, представление чисел, денежных единиц, времени и дат").
int MyInt = 100;
String MyString = MyInt.ToString("C");
Console.WriteLine(MyString);