Контракты кода не могут определить очевидную связь между Nullable .HasValue и null?

Я экспериментирую с применением кодовых контрактов к своему коду и столкнулся с трудной проблемой. Этот код не соответствует условиям контракта, но если я не буду слишком толстым, я ожидаю, что он сможет легко проанализировать, что id должен иметь значение в точке возврата

 if (id =  = ноль)
  throw new InvalidOperationException (string.Format («{0} '{1}' еще не имеет идентификатора», typeof (T) .Name, entity));

return id.Value;
 

Code Contracts error: requires unproven: HasValue

11
задан Wheelie 27 July 2011 в 15:55
поделиться