LINQ Агрегированное поведение типов, допускающих значение NULL

Кто-нибудь может объяснить, что здесь происходит? Как оба эти вещи верны?

[TestMethod]
public void WhatIsGoingOnHere()
{
    List<int?> list = new List<int?> { 1, 2, 3, null, 5, 6 };
    Assert.AreEqual(17, list.Sum());

    int? singleSum = 1 + 2 + 3 + null + 5 + 6;

    Assert.IsNull(singleSum);
}

В частности, почему метод Sum () не возвращает «null»? Или singleSum не равно 17?

8
задан kiwipom 9 September 2010 в 06:17
поделиться