ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Можно также повторять заполнитель в строке. Например, если вы являетесь поклонником Beatles и хотите построить строку "9, Number 9, Number 9", то можете написать следующее.
Замечание. Если имеется несоответствие между числом различных заполнителей в фигурных
Флаги форматирования строк .NET
Если требуется более сложное форматирование, каждый заполнитель может дополнительно содержать различные символы форматирования (в верхнем или в нижнем регистре), как показано в табл. 3.3.
Таблица 3.3. Символы форматирования строк .NET
Символы форматирования строк | Описание |
---|---|
C или с | Используются для форматирования денежных значений. По умолчанию перед этим флагом будет размещаться символ локальной денежкой единицы (скажем, знак доллара [$] для U.S. English) |
D или d | Используются для форматирования десятичных чисел. Этот флаг также указывает минимальное число знаков, используемое для представления значения |
Е или е | Используются для представлений в экспоненциальном формате |
F или f | Используются для представления в формате с фиксированным разделителем |
G или g | Обозначают general (общий [формат]). Эти символы можно использовать для представления чисел в формате с фиксированным разделителем или в экспоненциальном формате |
N или n | Используются для базового числового форматирования (с разделением групп разрядов) |
X или x | Используются для представления в шестнадцатиричном формате. Если используется X (в верхнем регистре), то в шестнадцатиричном представлении используются символы верхнего регистра |
Символы форматирования добавляются в виде суффикса к соответствующему заполнителю через двоеточие (например, {0:C}, {1:d}, {2:X} и т.д.). Предположим, что вы добавили в Main следующий программный код.
Использование символов форматирования в .NET не ограничивается консольными приложениями. Те же флаги можно использовать в контексте статического
На рис. 3.7 показан пример вывода данной программы.
Рис. 3.7. Флаги форматирования строк в действии
Исходный код. Проект BasicConsoleIO размещен в подкаталоге, соответствующем главе 3.
Доступность членов
Прежде чем двигаться дальше, мы должны обсудить вопрос доступности, или "видимости" членов. Члены (методы, поля, конструкторы и т.д.) данного класса или структуры должны указать свой уровень доступности. Если член определяется без указания ключевого слова, характеризующего доступность, этот член по умолчанию определяется как private. В C# используются модификаторы доступности методов, перечисленные в табл. 3.4.
Вы, наверное, уже знаете, что доступ к открытым членам можно получить с помощью объектной ссылки, используя операцию, обозначаемую точкой (.). Приватные члены недоступны извне по объектной ссылке, но могут вызываться объектами внутри, чтобы экземпляр мог выполнить свою работу (т.е. это частные вспомогательные функции).
Таблица 3.4. Ключевые слова C#, указывающие уровень доступности
Модификатор доступности C# | Описание |
---|---|
public (открытый, общедоступный) | Помечает метод, как доступный из объектной переменной, а также из всех производных классов |
private (частный, приватный) | Помечает метод, как доступный только из класса, определяющего этот метод. В C# любой член по умолчанию определяется, как private |
protected (защищенный) | Помечает метод, как доступный для определяющего класса, а также для любого производного класса. Однако защищенные методы не доступны из объектной переменной |
internal (внутренний) | Определяет метод, как доступный для любого типа только внутри данного компоновочного блока, но не снаружи |
protected internal (внутренний защищенный) | Определяет метод, доступ к которому ограничивается рамками текущего компоновочного блока или типами, созданными из определяющего класса в данном компоновочном блоке |
Защищенные члены оказываются полезными только при создании иерархии классов, что будет темой обсуждения главы 4. Что касается внутренних, и защищённых членов, то они обычно используются при создании библиотек программного кода .NET (например, управляемых библиотек *.dll, что будет обсуждаться в главе 11).
Чтобы проиллюстрировать применение указанных ключевых слов, создадим класс (SomeClass), в котором используются все указанные модификаторы доступности членов.