Українська
Підсумки
Висновки
Кожне значення в C# має тип, відомий під час компіляції. Типи-значення (числа, bool, char, структури) зберігають значення безпосередньо, а посилальні типи (string, object, масиви, класи) – посилання на об’єкт у керованій купі. Для цілих чисел основним є тип int, для великих значень – long; для дробових обчислень – double, а для грошей – decimal, який не має похибки десяткових дробів. Безпечні перетворення типів виконуються неявно, а перетворення з можливою втратою даних потребують явного приведення або методів Convert, Parse, TryParse. Під час обчислення виразів потрібно враховувати цілочисельне ділення, переповнення, пріоритет операцій і режим округлення, а значення, яке може бути відсутнім, описувати типами з ? та обробляти операціями ?? і ??=.
Питання для самоперевірки
- Чим типи-значення відрізняються від посилальних типів? Наведіть приклади.
- Що відбувається під час присвоювання змінних типу-значення та посилального типу?
- Що таке упакування та розпакування? Коли виникає
InvalidCastException? - Які цілі типи є в C#? Як дізнатися діапазон типу?
- Як записати шістнадцятковий і двійковий літерали? Для чого суфікси
L,U,f,m? - Чим відрізняються
float,doubleіdecimal? Який тип обрати для грошових сум? - Чому
0.1 + 0.2 == 0.3даєFalse? Як правильно порівнювати дійсні числа? - Що таке
NaNі нескінченність? Як перевірити, що значення єNaN? - Як працює неявна типізація
var? Коли її варто використовувати? - Чим константа
constвідрізняється від змінної? - Що означають записи
int?іstring?? Як працюють операції??і??=? - Які перетворення типів виконуються неявно? Коли потрібне явне приведення?
- Чим відрізняються
(int)3.5,Convert.ToInt32(3.5)іMath.Round(3.5)? - Як працює цілочисельне ділення та операція
%? - Чим відрізняються префіксна та постфіксна форми інкремента?
- Що таке переповнення? Як його виявити за допомогою
checked? - Що таке скорочене обчислення логічних операцій
&&і||? - Як за допомогою побітових операцій перевірити, встановити та скинути біт?
Корисні посилання
- Вбудовані типи C#: https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/built-in-types
- Цілі типи: https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/integral-numeric-types
- Дійсні типи: https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types
- Числові перетворення: https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/numeric-conversions
- Операції та вирази: https://learn.microsoft.com/dotnet/csharp/language-reference/operators/
- Оператори
checkedіunchecked: https://learn.microsoft.com/dotnet/csharp/language-reference/statements/checked-and-unchecked - Типи з можливістю null: https://learn.microsoft.com/dotnet/csharp/nullable-references
- Стандартні формати чисел: https://learn.microsoft.com/dotnet/standard/base-types/standard-numeric-format-strings