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

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

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

static void DataTypeFunctionality

{

Console.WriteLine("=> Data type Functionality:");

Console.WriteLine("Max of int: {0}", int.MaxValue);

Console.WriteLine("Min of int: {0}", int.MinValue);

Console.WriteLine("Max of double: {0}", double.MaxValue);

Console.WriteLine("Min of double: {0}", double.MinValue);

Console.WriteLine("double.Epsilon: {0}", double.Epsilon);

Console.WriteLine("double.PositiveInfinity: {0}",

double.PositiveInfinity);

Console.WriteLine("double.NegativeInfinity: {0}",

double.NegativeInfinity);

Console.WriteLine;

}

В

случае определения литерального целого числа (наподобие
500
) исполняющая среда по умолчанию назначит ему тип данных
int
. Аналогично литеральное число с плавающей точкой (такое как
55.333
) по умолчанию получит тип
double
. Чтобы установить тип данных в
long
, используйте суффикс
l
или
L
(
4L
). Для объявления переменной типа
float
применяйте с числовым значением суффикс
f
или
F
(
5.3F
), а для объявления десятичного числа используйте со значением с плавающей точкой суффикс
m
или
М
(
300.5М
). Это станет более важным при неявном объявлении переменных, как будет показано позже в главе.

Члены System.Boolean

Рассмотрим тип данных

System.Boolean
. К допустимым значениям, которые могут присваиваться типу
bool
в С#, относятся только
true
и
false
. С учетом этого должно быть понятно, что
System.Boolean
не поддерживает свойства
MinValue
и
MaxValue
, но вместо них определяет свойства
TrueString
и
FalseString
(которые выдают, соответственно, строки
"True"
и
"False"
).

Вот пример:

Console.WriteLine("bool.FalseString: {0}", bool.FalseString);

Console.WriteLine("bool.TrueString: {0}", bool.TrueString);

Члены System.Char

Текстовые данные в C# представляются посредством ключевых слов

string
и
char
, которые являются сокращенными обозначениями для типов
System.String
и
System.Char
(оба основаны на Unicode). Как вам уже может быть известно,
string
представляет непрерывное множество символов (например,
"Hello"
), a
char
— одиночную ячейку в
string
(например,
'Н'
).

Помимо возможности хранения одиночного элемента символьных данных тип

System.Char
предлагает немало другой функциональности. Используя статические методы
System.Char
, можно выяснять, является данный символ цифрой, буквой, знаком пунктуации или чем-то еще. Взгляните на следующий метод:

static void CharFunctionality

{

Console.WriteLine("=> char type Functionality:");

char myChar = 'a';

Console.WriteLine("char.IsDigit('a'): {0}", char.IsDigit(myChar));

Console.WriteLine("char.IsLetter('a'): {0}", char.IsLetter(myChar));

Console.WriteLine("char.IsWhiteSpace('Hello There', 5): {0}",

char.IsWhiteSpace("Hello There", 5));

Console.WriteLine("char.IsWhiteSpace('Hello There', 6): {0}",

char.IsWhiteSpace("Hello There", 6));

Console.WriteLine("char.IsPunctuation('?'): {0}",

char.IsPunctuation('?'));

Console.WriteLine;

}

В

методе
CharFunctionality
было показано, что для многих членов
System.Char
предусмотрены два соглашения о вызове: одиночный символ или строка с числовым индексом, указывающим позицию проверяемого символа.

Разбор значений из строковых данных

Типы данных .NET Core предоставляют возможность генерировать переменную лежащего в основе типа, имея текстовый эквивалент (например, путем выполнения разбора) Такой прием может оказаться исключительно удобным, когда вы хотите преобразовывать в числовые значения некоторые вводимые пользователем данные (вроде элемента, выбранного в раскрывающемся списке внутри графического пользовательского интерфейса) Ниже приведен пример метода

ParseFromStrings
, содержащий логику разбора:

static void ParseFromStrings

{

Console.WriteLine("=> Data type parsing:");

bool b = bool.Parse("True");

Console.WriteLine("Value of b: {0}", b); // Вывод значения b

double d = double.Parse("99.884");

Console.WriteLine("Value of d: {0}", d); // Вывод значения d

int i = int.Parse("8");

Console.WriteLine("Value of i: {0}", i); // Вывод значения i

char c = Char.Parse("w");

Console.WriteLine("Value of c: {0}", c); // Вывод значения с

Console.WriteLine;

}

Использование метода TryParse для разбора значений из строковых данных

Проблема с предыдущим кодом связана с тем, что если строка не может быть аккуратно преобразована в корректный тип данных, то сгенерируется исключение. Например, следующий код потерпит неудачу во время выполнения:

bool b = bool.Parse("Hello");

Решение предусматривает помещение каждого вызова

Parse
в блок
try-catch
(обработка исключений подробно раскрывается в главе 7), что добавит много кода, или применение метода
TryParse
. Метод
TryParse
принимает параметр
out
(модификатор
out
рассматривается в главе 4) и возвращает значение
bool
, которое указывает, успешно ли прошел разбор. Создайте новый метод по имени
ParseFromStringWithTryParse
и поместите в него такой код:

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

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Хозяйка дома в «Гиблых Пределах»

Нова Юлия
Любовные романы:
любовно-фантастические романы
5.75
рейтинг книги
Хозяйка дома в «Гиблых Пределах»

Фиктивный брак

Завгородняя Анна Александровна
Фантастика:
фэнтези
6.71
рейтинг книги
Фиктивный брак

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

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Драконий подарок

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

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

По дороге на Оюту

Лунёва Мария
Фантастика:
космическая фантастика
8.67
рейтинг книги
По дороге на Оюту

Мастер 5

Чащин Валерий
5. Мастер
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Мастер 5

Не лечи мне мозги, МАГ!

Ордина Ирина
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.00
рейтинг книги
Не лечи мне мозги, МАГ!

Измена. Право на семью

Арская Арина
Любовные романы:
современные любовные романы
5.20
рейтинг книги
Измена. Право на семью

Крепость над бездной

Лисина Александра
4. Гибрид
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Крепость над бездной

Неудержимый. Книга XXI

Боярский Андрей
21. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неудержимый. Книга XXI