Инициализация переменной с new() или default?

Код:

using System;

int first = 0;
int second = new();
int third = default;

Console.WriteLine("first: {0};", first);
Console.WriteLine("second: {0};", second);
Console.WriteLine("third: {0};", third);

В моих глазах new() и default - одно и тоже. Но default можно использовать для изменения значения переменной не только при инициализации или первом присваивании переменной.

Так в чем разница между этими инициализациями?


Ответы (1 шт):

Автор решения: Yotic

Если речь об ссылочных типах - default(your_var) вернёт null.

В ином случае default(your_var) вернёт инициализированную структуру, даже если у этой структуры нет конструктора или нет конструктора без параметров.

Пример с Complex(struct) - https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/default

→ Ссылка