Здравствуйте, xvost, Вы писали:
X>спасибо, бум лечить.....
X>А что это за Pure? Он же только в CLR4 появился...
Вам спасибо за экономию времени и сил!
PureAttribute из CodeContracts, их можно сейчас и без CLR4.0 использовать без особых проблем.
Кстати, а на каком основнии R# полагает "Possible 'System.NullReferenceException'" в данном случае:
int DoSmth(string text)
{
Contract.Requires(text != null);
return text.Length;
^^^^
}
Тут Contract.Requires() — всего лишь вызов статического метода, какая разница что туда передалось: true или false, разве это позволяет судить далее по коду о значении ссылки text? (на самом деле позволяет, но совершенно в иную сторону) В уйме мест теперь подчёркивание по этому поводу

А на Debug.Assert() такой реакции нет, всё верно, хотя устроено внутри так же — просто вызов статического метода