Мне трудно понять, почему я получаю нарушение контракта по коду для следующего фрагмента кода:
// servicequery is of type System.Data.Services.Client.DataServiceQuery<DividendData>
// therefore implements IQueryable
var serviceQuery = CreateDataService().DividendData;
Contract.Assume(serviceQuery != null);
Contract.Assume(serviceQuery.Any());
var data = serviceQuery
.Select(div => new {I = 2});
Нарушение: CodeContracts: requires unproven: constructor != null
прямо в задании.
Если я изменю этот код на следующий, нарушение исчезнет:
class resulttype
{
public int I { get; set; }
}
var serviceQuery = CreateDataService().DividendData;
Contract.Assume(serviceQuery != null);
Contract.Assume(serviceQuery.Any());
var data = serviceQuery
.Select(div => new resulttype() {I = 2});
У меня вопрос «почему?».