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

на главную

Жанры

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

static void UseBigInteger

{

Console.WriteLine("=> Use BigInteger:");

BigInteger biggy =

BigInteger.Parse("9999999999999999999999999999999999999999999999");

Console.WriteLine("Value of biggy is {0}", biggy);

Console.WriteLine("Is biggy an even value?: {0}", biggy.IsEven);

Console.WriteLine("Is biggy a power of two?: {0}", biggy.IsPowerOfTwo);

BigInteger reallyBig = BigInteger.Multiply(biggy,

BigInteger.Parse("8888888888888888888888888888888888888888888"));

Console.WriteLine("Value of reallyBig is {0}", reallyBig);

}

Важно

отметить, что тип данных
BigInteger
реагирует на внутренние математические операции С#, такие как
+
,
и
*
. Следовательно, вместо вызова метода
BigInteger.Multiply
для перемножения двух больших чисел можно использовать такой код:

BigInteger reallyBig2 = biggy * reallyBig;

К настоящему моменту вы должны понимать, что ключевые слова С#, представляющие базовые типы данных, имеют соответствующие типы в библиотеках базовых классов .NET Core, каждый из которых предлагает фиксированную функциональность. Хотя абсолютно все члены этих типов данных в книге подробно не рассматриваются, имеет смысл изучить их самостоятельно. Подробные описания разнообразных типов данных .NET Core можно найти в документации по .NET Core — скорее всего, вы будете удивлены объемом их встроенной функциональности.

Использование разделителей групп цифр (нововведение в версии 7.0)

Временами при присваивании числовой переменной крупных чисел цифр оказывается больше, чем способен отслеживать глаз. В версии C# 7.0 был введен разделитель групп цифр в виде символа подчеркивания (

_
) для данных
int
,
long
,
decimal
,
double
или шестнадцатеричных типов. Версия C# 7.2 позволяет шестнадцатеричным значениям (и рассматриваемым далее новым двоичным литералам) после открывающего объявления начинаться с символа подчеркивания. Ниже представлен пример применения нового разделителя групп цифр:

static void DigitSeparators

{

Console.WriteLine("=> Use Digit Separators:");

Console.Write("Integer:"); // Целое

Console.WriteLine(123_456);

Console.Write("Long:"); // Длинное целое

Console.WriteLine(123_456_789L);

Console.Write("Float:"); // С плавающей точкой

Console.WriteLine(123_456.1234F);

Console.Write("Double:"); //
С плавающей точкой двойной точности

Console.WriteLine(123_456.12);

Console.Write("Decimal:"); // Десятичное

Console.WriteLine(123_456.12M);

// Обновление в версии 7.2: шестнадцатеричное значение

// может начинаться с символа _

Console.Write("Hex:");

Console.WriteLine(0x_00_00_FF); // Шестнадцатеричное

}

Использование двоичных литералов (нововведение в версии 7.0/7.2)

В версии C# 7.0 появился новый литерал для двоичных значений, которые представляют, скажем, битовые маски. Новый разделитель групп цифр работает с двоичными литералами, а в версии C# 7.2 разрешено начинать двоичные и шестнадцатеричные числа начинать с символа подчеркивания. Теперь двоичные числа можно записывать ожидаемым образом, например:

0b_0001_0000

Вот метод, в котором иллюстрируется использование новых литералов с разделителем групп цифр:

static void BinaryLiterals

{

// Обновление в версии 7.2: двоичное значение может начинаться с символа _

Console.WriteLine("=> Use Binary Literals:");

Console.WriteLine("Sixteen: {0}",0b_0001_0000); // 16

Console.WriteLine("Thirty Two: {0}",0b_0010_0000); // 32

Console.WriteLine("Sixty Four: {0}",0b_0100_0000); // 64

}

Работа со строковыми данными

Класс

System.String
предоставляет набор членов, вполне ожидаемый от служебного класса такого рода, например, члены для возвращения длины символьных данных, поиска подстрок в текущей строке и преобразования символов между верхним и нижним регистрами. В табл. 3.5 перечислены некоторые интересные члены этого класса.

Выполнение базовых манипуляций со строками

Работа с членами

System.String
выглядит вполне ожидаемо. Просто объявите переменную
string
и задействуйте предлагаемую типом функциональность через операцию точки. Не следует забывать, что несколько членов
System.String
являются статическими и потому должны вызываться на уровне класса (а не объекта).

Создайте новый проект консольного приложения по имени

FunWithStrings
и добавьте его в свое решение. Замените существующий код следующим кодом:

Поделиться:
Популярные книги

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Барон устанавливает правила

Ренгач Евгений
6. Закон сильного
Старинная литература:
прочая старинная литература
5.00
рейтинг книги
Барон устанавливает правила

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

Низший - Инфериор. Компиляция. Книги 1-19

Михайлов Дем Алексеевич
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
5.00
рейтинг книги
Низший - Инфериор. Компиляция. Книги 1-19

Мастер 4

Чащин Валерий
4. Мастер
Фантастика:
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Мастер 4

Студиозус

Шмаков Алексей Семенович
3. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус

Безумный Макс. Ротмистр Империи

Ланцов Михаил Алексеевич
2. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
4.67
рейтинг книги
Безумный Макс. Ротмистр Империи

Ветер перемен

Ланцов Михаил Алексеевич
5. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ветер перемен

По дороге пряностей

Распопов Дмитрий Викторович
2. Венецианский купец
Фантастика:
фэнтези
героическая фантастика
альтернативная история
5.50
рейтинг книги
По дороге пряностей

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Повелитель механического легиона. Том I

Лисицин Евгений
1. Повелитель механического легиона
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Повелитель механического легиона. Том I