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

ЖАНРЫ

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

Console.WriteLine("12.ToString = {0}", 12.ToString);

Console.WriteLine("12.GetType = {0}", 12.GetType);

Console.WriteLine;

}

Вызов метода

ObjectFunctionality
внутри
Main
дает такой вывод:

=> System.Object Functionality:

12.GetHashCode = 12

12.Equals(23) = False

12.ToString = 12

12.GetType = System.Int32

Члены

числовых типов данных

Продолжая эксперименты со встроенными типами данных С#, следует отметить, что числовые типы .NET Core поддерживают свойства

MaxValue
и
MinValue
, предоставляющие информацию о диапазоне значений, которые способен хранить конкретный тип. В дополнение к свойствам
MinValue
и
MaxValue
каждый числовой тип может определять собственные полезные члены. Например, тип
System.Double
позволяет получать значения для бесконечно малой (эпсилон) и бесконечно большой величин (которые интересны тем, кто занимается решением математических задач). В целях иллюстрации рассмотрим следующую вспомогательную функцию:

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 для разбора значений из строковых данных

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

Поделиться с друзьями: