- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我研究了使用条件框架来验证数据而不是
if(cond) throw new SomeException();
SomeFramework.MakeSure(cond);
最后我的选择是使用 CodeContract
或 CuttingEdge.Conditions
框架。
我无法决定使用哪个框架。我可以告诉你,我不喜欢“CodeContract”框架的地方是你必须安装额外的 msi
才能使用它以及你需要选择的选项;不是说它不好,而是感觉不自然。 (当然,它仍在 MS 研究中。)
你怎么看?
最佳答案
CodeContracts
框架是 .NET 4 的一部分。因此您可以针对它编写代码而无需安装任何东西,只是如果没有重写器组件,代码契约将不会有任何效果运行。我将此包含在框架中视为 Microsoft 打算在未来更多地集成代码契约的标志。
根据 CuttingEdge.Conditions
CodePlex page 上的统计数据, 它只被下载了 4,189 次。语法有一些不错的地方,但除非 CuttingEdge.Conditions
而非 CodeContracts
特别支持某些内容,否则您还是坚持使用.NET.
就我而言,代码合约的主要特征如下:
您可以在接口(interface)上设置代码契约,以指定实现这些接口(interface)的类型的预期行为。
代码契约是继承的。
我还没有尝试过 CuttingEdge.Conditions
,但它是否支持这两个功能并不明显(而 CodeContracts
支持)。
关于c# - 我应该使用哪个,CodeContract 还是 CuttingEdge.Conditions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9347946/
我研究了使用条件框架来验证数据而不是 if(cond) throw new SomeException(); SomeFramework.MakeSure(cond); 最后我的选择是使用 CodeC
我是一名优秀的程序员,十分优秀!