Жанры книг
Мы в соц.сетях
ParaKnig📚 » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
<< На главную

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 52 53 54 55 56 57 58 59 60 ... 642
Перейти на страницу:

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

static void CharFunctionality()

{

  Console.WriteLine(&quot;=&gt; char type Functionality:&quot;);

  char myChar = 'a';

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

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

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

    char.IsWhiteSpace(&quot;Hello There&quot;, 5));

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

    char.IsWhiteSpace(&quot;Hello There&quot;, 6));

  Console.WriteLine(&quot;char.IsPunctuation('?'): {0}&quot;,

    char.IsPunctuation('?'));

  Console.WriteLine();

}

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

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

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

static void ParseFromStrings()

{

  Console.WriteLine(&quot;=&gt; Data type parsing:&quot;);

  bool b = bool.Parse(&quot;True&quot;);

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

  double d = double.Parse(&quot;99.884&quot;);

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

  int i = int.Parse(&quot;8&quot;);

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

  char c = Char.Parse(&quot;w&quot;);

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

  Console.WriteLine();

}

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

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

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

bool b = bool.Parse(&quot;Hello&quot;);

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

static void ParseFromStringsWithTryParse()

{

  Console.WriteLine(&quot;=&gt; Data type parsing with TryParse:&quot;);

  if (bool.TryParse(&quot;True&quot;, out bool b))

  {

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

  }

  else

  {

    Console.WriteLine(&quot;Default value of b: {0}&quot;, b);

                    // Вывод стандартного значения b

  }

  string value = &quot;Hello&quot;;

  if (double.TryParse(value, out double d))

  {

    Console.WriteLine(&quot;Value of d: {0}&quot;, d);

  }

  else

  {

    // Преобразование входного значения в double потерпело неудачу

    // и переменной было присвоено стандартное значение.

    Console.WriteLine(&quot;Failed to convert the input ({0}) to a double and

                      the variable was assigned the default {1}&quot;, value,d);

  }

  Console.WriteLine();

}

Если вы только начали осваивать программирование и не знаете, как работают операторы if/else, то они подробно рассматриваются позже в главе. В приведенном выше примере важно отметить, что когда строка может быть преобразована в запрошенный тип данных, метод TryParse() возвращает true и присваивает разобранное значение переменной, переданной методу. В случае невозможности разбора значения переменной присваивается стандартное значение, а метод TryParse() возвращает false.

1 ... 52 53 54 55 56 57 58 59 60 ... 642
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Комментарии
Открыть боковую панель
Комментарии
Лариса
Лариса 11.03.2026 - 20:17
Странно,здесь имя девочки Аграфена,а на других сайтах я прослушала три книги этого цикла с именем Дарвина.Зачем менять имя и путать читателей? Опечатка- не Дарвина,  а  Дарина.
Григорий
Григорий 09.04.2025 - 22:24
Лучшая книга всех времен
Женя
Женя 02.04.2025 - 16:08
Любимая книга