有誰知道如何在ReSharper ExternalAnnotations中添加代碼合同確保?它不在最新的v7.1.3版本和最新的v8 EAP版本中,也沒有在任何自定義xml中浮動。 Contract.Ensures(Contract.Result<T>() != null);
代碼合同確保ReSharper ExternalAnnotations
3
A
回答
4
如果你試圖安撫簡單的分析引擎,用最簡單的事情是在方法聲明的前[NotNull]
:
具體來說,如果方法不不返回一個空應該檢測。您在上面發佈鏈接的合同註釋是定義輸入參數與返回值之間關係的更強大機制,例如[ContactAnnotation("null => null")]
。
但是,明確分析Contract.Ensures
語句是一個完全不同的命題,因爲不能通過[ContractAnnotation]
或任何其他ReSharper註釋屬性爲此語句定義自動分析。
+0
是的,我意識到所有這一切,並且是的,它畢竟是不可行的 - 就像屬性在某種程度上需要隱含的方法代碼合同,而不是代碼合同本身......哦,謝謝你 - 請更正你的答案('確保'而不是'需要'),以免混淆人們,我會接受它。 –
+0
@NikolaBogdanović完成! –
相關問題
- 1. 使用代碼合同確保收集保持不變
- 2. Resharper和代碼合同都可以使用共同的PureAttribute嗎?
- 3. 確保集合中的所有項目都相同的代碼合同
- 4. Resharper和代碼合同不能很好地協作
- 5. 代碼合同,並確保沒有拋出異常
- 6. 代碼合同C#確保價值是在陣列
- 7. 如何正確使用代碼合同?
- 8. ReSharper的示例代碼
- 9. ReSharper的:在代碼清理
- 10. Resharper代碼格式linebreaks
- 11. ReSharper的生成代碼
- 12. ReSharper的overindents我的代碼
- 13. resharper和代碼分析
- 14. ReSharper的代碼清理
- 15. 代碼合同+代碼分析
- 16. 代碼合同與代碼分析器
- 17. 代碼合同:確保未經過驗證的字符串方法
- 18. 代碼合同錯誤
- 19. 代碼合同和異步
- 20. Pex和代碼合同
- 21. 是代碼合同AOP?
- 22. JavaScript代碼合同庫?
- 23. 單聲道代碼合同?
- 24. Moq和代碼合同
- 25. 代碼合同和編譯
- 26. 代碼合同繼承
- 27. Resharper將格式化代碼合併到一行中
- 28. 避免編寫代碼兩次,同時保持正確的代碼方式?
- 29. 代碼合約確保未被證明用於循環
- 30. 合同異步和同步代碼
您所描述的內容不是可以通過外部註釋來描述的內容。要讓R#檢測到這一點,您需要使用專門用於檢測此類語句的分析器編寫自己的插件。 –
@DmitriNesteruk:ReSharper v7附帶延長註釋的自己的合同(http://blogs.jetbrains.com/dotnet/2012/08/contract-annotations-in-res- harper-7/) - 如果您的意見基於也就是說,除了添加一個答案,我會接受它... –