Литеральные константы
Константы C# могут появляться в виде литералов и именованных констант. Например:
y = 7.7f;
Значение константы "7.7f" является одновременно ее именем, оно же позволяет однозначно определить тип константы. В примере добавляется суффикс - специальный символ для точного указания типа. Примеры литеральных констант:
bool sw1=true, sw2=false; //нельзя присвоить 0 или 1
byte myByte=23;
sbyte mySByte=-5;
short myShort=34;
ushort myUShort=234;
int myInt=-453;
uint myUint=10u; // u или U
long myLong=1523L; // l можно спутать с 1
ulong myUlong1=564ul,
myUlong2=435Lu; // в любом порядке
decimal myDec=123.4m; // или М
float myFloat=234.5f; // или F
double myDoub1=34.56,
myDoub2=45.32d; // или D
char myChar='a'; // или Esc-последовательность
string myString1="Проба\nПера", // обычная строка
myString2=@"На
нескольких
строках"; // дословная строка, удобная для записи пути
Таблица 2
Esc-последовательность |
Выводимый символ |
Код символа в Unicode |
\’ |
Одиночная кавычка |
\x0027 |
\” |
Двойная кавычка |
\x0022 |
\\ |
Обратный слэш |
\x005C |
\0 |
Null |
\x0000 |
\a |
Тревога (звуковой сигнал) |
\x0007 |
\b |
backspace |
\x0008 |
\f |
Начать новую страницу |
\x000C |
\n |
Новая строка |
\x000A |
\r |
Возврат каретки |
\x000D |
\t |
Горизонтальная табуляция |
\x0009 |
\v |
Вертикальная табуляция |
\x000B |
\u |
Символ Unicode |
\xNNNN |
В объявлении константы добавляется модификатор const, инициализация констант обязательна и не может быть отложена.
Инициализирующее выражение может быть сложным, важно, чтобы оно могло быть вычислено в момент его определения.
public void Constants()
{
const int smallSize = 38, largeSize =58;
const int midSize = (smallSize + largeSize)/2;
const double pi = 3.141593;
largeSize = 60; //Ошибка!!!!!!!!! Значение константы нельзя изменить.
Console.WriteLine("midSize= {0}; pi={1}", midSize, pi);
}
Рассмотрим пример, демонстрирующий спецификаторы формата при выводе на консоль.
static void Main(string[] args)
{
string myStr=@"Вывод
с различными параметрами форматирования
переменной float=1054.4567f";
Console.WriteLine(myStr);
float myFloat=1054.4567f;
Console.Write("Нет "); // можно и без перехода на новую строку
Console.WriteLine(myFloat);
Console.WriteLine("c {0:c}",myFloat);
// денежный формат
Console.WriteLine("C1 {0:C1}",myFloat);
// -«- с 1 цифрой после запятой
Console.WriteLine("n1 {0:n1}",myFloat);
// 1 цифра после запятой
Console.WriteLine("N6 {0:N6}",myFloat);
// 6 цифр после запятой
Console.WriteLine("f {0:f}",myFloat);
// формат с фиксированной точкой
Console.WriteLine("F3 {0:F3}",myFloat);
//фиксир. точка и 3 цифры после запятой
Console.WriteLine("G {0:G}",myFloat);
Console.WriteLine("g {0:g}",myFloat);
// наиболее подходящий формат: f или e
Console.WriteLine("e10 {0:e10}",myFloat);
//формат с плав. точ. и 10 цифр после зап.
Console.WriteLine("E3 {0:E3}",myFloat);
// формат с плав. точ. и 3 цифры после зап.
Console.ReadLine(); //ждем нажатия Enter
}
Рис. 8. Спецификаторы формата
static void Main(string[] args)
{
string myStr=@"Вывод
целого числа 1235
в 16-ричной системе счисления";
Console.WriteLine(myStr);
Console.WriteLine("X {0:X}", 1235);
Console.WriteLine("x4 {0:x4}", 1235);
}
Рис. 9. Спецификаторы формата системы счисления
Спецификатор формата задается следующим образом:
{N [,M [:<КодыФорматирования>]]}
N задает номер объекта, заменяющего формат, задается обязательно. Номер начинается с нуля. M задает минимальную ширину поля вывода.