Почему в C# null не превратился в полностью типизированный литерал, такой как default или []? [дубликат]C#

Место общения программистов C#
Anonymous
Почему в C# null не превратился в полностью типизированный литерал, такой как default или []? [дубликат]

Сообщение Anonymous »

Есть ли какая-то странная вещь, которую мне не хватает в языке C# или способе выполнения компилятором Roslyn вещей, о которых я не знаю?
Вот такие:

Код: Выделить всё

public void Should_Fail_When_UserIsInactive()
{
var data = ((Guid?)null, false);
_mockClient.MockResponse(data);

Should.Throw(async () =>
await _deptoValidator.ValidateUsersFromDeptoAsync(_deptoGuid, , CancellationToken.None));
}
или

Код: Выделить всё

var hrDeptos = deptos?.Where(tc => tc.IsHRDepto).ToList() ?? [];

var guid = hrDeptos.Count == 1
? hrDeptos[0].deptoGuid
: (Guid?)null;
Я имею в виду, есть ли необходимость приводить значение NULL, поскольку теоретически компилятору достаточно информации, чтобы узнать основной тип, на который я хочу ссылаться?
Честно говоря, я не понимаю, зачем приводить значение NULL, поскольку значение NULL равно... NULL.>

Вернуться в «C#»