Code Contracts 关于方法Contract.Requires<T>()
2016-02-14 00:00
531 查看
摘要: Contract.Requires<T>()
在调用
输入为空的时候 不会抛异常,
然后查了资料
这个需要在项目属性理勾选 Call-site Requires Checking
class Program { static void Main(string[] args) { A a = new A(); try { a.PutA(Console.ReadLine()); } catch (Exception e) { Console.WriteLine(e); } } }
[ContractClass(typeof(AContract))] public interface IA { int ErrorInt { get; set; } void PutA(string str); }
[ContractClassFor(typeof(IA))] sealed class AContract:IA { public int ErrorInt { get; set; } public void PutA(string str) { //Console.WriteLine(nameof(AContract)); Contract.Requires<ArgumentNullException>(!String.IsNullOrEmpty(str),"str"); //Contract.Requires(str != null); //Contract.Ensures(str!=null); //Contract.EnsuresOnThrow<ArgumentNullException>(str == null); //Contract.Requires<ArgumentNullException>(ErrorInt == 0,nameof(ErrorInt)); } }
在调用
a.PutA(Console.ReadLine());
输入为空的时候 不会抛异常,
然后查了资料
这个需要在项目属性理勾选 Call-site Requires Checking
相关文章推荐
- UI基础-04 简单的加法计算器
- UIScrollView
- Splunk setup guide
- ViewPager中requestDisallowInterceptTouchEvent
- LeetCode 303. Range Sum Query - Immutable
- iOS --- 根据字符串的实际大小来计算UILabel的size
- 自定义UICollectinviewFlowLayout,即实现瀑布流
- Bluestacks2查看/data/data下文件的方法
- ANDROID 6.0大舞台(1):从交互设计到UI代码开发
- Arduino代码机制-引脚读写
- iOS 去掉UITextField前后空格
- 杭电1059Windows Message Queue
- 【小白的CFD之旅】09 初识FLUENT
- 96. Unique Binary Search Trees LeetCode
- Codeforces 622A Infinite Sequence 【数学】
- LABjs、RequireJS、SeaJS
- javaweb入门笔记(4)-request和response
- iPone应用开发 UIView 常用属性和方法
- HDU 1242 Rescue(dfs深搜)
- 解决easyUI grid标题固定居中的问题