Язык программирования C#9 и платформа .NET5
Часть 55 из 642 Информация о книге
Не вдаваясь глубоко в детали классов
иSystem.Object, важно уяснить, что поскольку любое ключевое слово C# (скажем,System.ValueType) представляет собой просто сокращенное обозначение соответствующего системного типа (в данном случаеint), то приведенный ниже синтаксис совершенно законен. Дело в том, что типSystem.Int32(System.Int32в С#) в конечном итоге является производным от классаintи, следовательно, может обращаться к любому из его открытых членов, как продемонстрировано в еще одной вспомогательной функции:System.Objectstatic void ObjectFunctionality(){Console.WriteLine("=> System.Object Functionality:");<b> // Ключевое слово int языка C# - это в действительности сокращение для</b><b> // типа System.Int32, который наследует от System.Object следующие члены:</b>Console.WriteLine("12.GetHashCode() = {0}", 12.GetHashCode());Console.WriteLine("12.Equals(23) = {0}", 12.Equals(23));Console.WriteLine("12.ToString() = {0}", 12.ToString());Console.WriteLine("12.GetType() = {0}", 12.GetType());Console.WriteLine();}Вызов метода
внутриObjectFunctionality()дает такой вывод:Main()=> System.Object Functionality:12.GetHashCode() = 1212.Equals(23) = False12.ToString() = 1212.GetType() = System.Int32Члены числовых типов данных
Продолжая эксперименты со встроенными типами данных С#, следует отметить, что числовые типы .NET Core поддерживают свойства
иMaxValue, предоставляющие информацию о диапазоне значений, которые способен хранить конкретный тип. В дополнение к свойствамMinValueиMinValueкаждый числовой тип может определять собственные полезные члены. Например, типMaxValueпозволяет получать значения для бесконечно малой (эпсилон) и бесконечно большой величин (которые интересны тем, кто занимается решением математических задач). В целях иллюстрации рассмотрим следующую вспомогательную функцию:System.Doublestatic 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(оба основаны на Unicode). Как вам уже может быть известно,System.Charпредставляет непрерывное множество символов (например,string), a"Hello"— одиночную ячейку вchar(например,string).'Н'
