Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!
Шрифт:
Интервал:
Закладка:
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() и поместите в него такой код:
static void ParseFromStringsWithTryParse()
{
Console.WriteLine("=> Data type parsing with TryParse:");
if (bool.TryParse("True", out bool b))
{
Console.WriteLine("Value of b: {0}", b); // Вывод значения b
}
else
{
Console.WriteLine("Default value of b: {0}", b);
// Вывод стандартного значения b
}
string value = "Hello";
if (double.TryParse(value, out double d))
{
Console.WriteLine("Value of d: {0}", d);
}
else
{
// Преобразование входного значения в double потерпело неудачу
// и переменной было присвоено стандартное значение.
Console.WriteLine("Failed to convert the input ({0}) to a double and
the variable was assigned the default {1}", value,d);
}
Console.WriteLine();
}
Если вы только начали осваивать программирование и не знаете, как работают операторы if/else, то они подробно рассматриваются позже в главе. В приведенном выше примере важно отметить, что когда строка может быть преобразована в запрошенный тип данных, метод TryParse() возвращает true и присваивает разобранное значение переменной, переданной методу. В случае невозможности разбора значения переменной присваивается стандартное значение, а метод TryParse() возвращает false.
Использование типов System.DateTime и System.TimeSpan
В пространстве имен System определено несколько полезных типов данных, для которых отсутствуют ключевые слова языка С#, в том числе структуры DateTime и TimeSpan. (При желании
Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
- 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
- 2. Просьба отказаться от оскорблений, угроз и запугиваний.
- 3. Просьба отказаться от нецензурной лексики.
- 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.
Оставить комментарий
-
Гость Татьяна24 сентябрь 22:20 Как то не очень... Невеста по ошибке. Я не дам тебе развод - Майя Линн
-
Римма24 сентябрь 21:52 Почему главные героинитпкие идиотки? И сюжет не плохой, и написано хорошо. Но как героиня - так дура дурой.... Хозяйка маленького дома, или Любимая для дракона - Кира Рамис
-
Римма20 сентябрь 12:27 Много ненужных пояснений и отступлений. Весь сюжет теряет свою привлекательность. Героиня иногда так тупит, что читать не... Хозяйка приюта для перевертышей и полукровок - Елена Кутукова