Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Страница 56
Помимо возможности хранения одиночного элемента символьных данных тип
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
TryParse()
TryParse()
out
out
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