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

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

Жанры

Язык программирования 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
и поместите в него такой код:

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

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

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

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

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Хозяин Теней 4

Петров Максим Николаевич
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 4

Картофельное счастье попаданки

Иконникова Ольга
Фантастика:
фэнтези
5.00
рейтинг книги
Картофельное счастье попаданки

Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель

Корнев Павел Николаевич
Фантастика:
фэнтези
героическая фантастика
5.50
рейтинг книги
Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2

Сумеречный стрелок 7

Карелин Сергей Витальевич
7. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок 7

Жизнь под чужим солнцем

Михалкова Елена Ивановна
Детективы:
прочие детективы
9.10
рейтинг книги
Жизнь под чужим солнцем

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец