如何在 .NET 4.0 中使用代码契约而不让我的代码看起来混乱?

2024-01-11

我已经开始使用代码契约,并发现很难立即发现方法的“本质”。

以这个(非常简单)为例:

public static void UserAddNew(string domain, string username, string displayName)
{
    Contract.Assert(!string.IsNullOrWhiteSpace(domain));
    Contract.Assert(!string.IsNullOrWhiteSpace(username));
    Contract.Assert(!string.IsNullOrWhiteSpace(displayName));

    LinqDal.User.UserAddNew(domain, username, displayName);
}

现在我很想将合约放在一个区域中,以便将它们隐藏起来,但我担心我会失去一个很好的优势,即能够浏览该方法并了解它的期望。

您如何保持合同“整洁”?还是我太挑剔了?


查看 ContractClass 和 ContractClassFor 属性。这允许您在单独的程序集中编写带有代码协定的类。这允许您将合同用于开发工作,不会使您的代码混乱,也意味着您不必使用实时代码部署合同:

合约类别属性 http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contractclassattribute.aspx

属性的契约类 http://msdn.microsoft.com/en-us/library/system.diagnostics.contracts.contractclassforattribute.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 .NET 4.0 中使用代码契约而不让我的代码看起来混乱? 的相关文章

  • 实体框架代码首先迁移抛出错误

    这是我在收到此错误之前所做的操作 安装了 EF 预发布版本 可能是 6 我不知道 决定我不想要 所以卸载它并重新安装稳定版本 5 通过 SSMS 截断我的数据库 这是错误 Exception calling CreateInstanceFr
  • C# 4.0 中的“动态”类型有何用途?

    C 4 0 引入了一种称为 动态 的新类型 听起来不错 但是程序员会用它做什么呢 有没有什么情况可以挽救局面 The dynamic添加了关键字以及 C 4 0 的许多其他新功能 以便更轻松地与具有不同 API 的其他运行时中或来自其他运行
  • 如何在 Asp.net C# 中使用 LDAP 在 Active Directory 中搜索用户

    如何在 asp net c 中从 Active Directory 服务器获取所有记录 在中创建连接字符串LDAP提供username and Password可以与服务器通信并具有管理员权限 假设直流电是me com and userna
  • C# 正则表达式匹配带点的单词

    敏捷的棕色狐狸跳过了 懒狗 是英语 全字母表 字母表 也就是一个短语 包含所有字母 字母表 它已被用来测试 打字机字母表 和电脑 键盘和其他应用程序 涉及到所有的字母 英文字母表 我需要得到 字母表 正则表达式中的单词 上面的文字中有3个实
  • 在 C# 中获取实际日期时间而不是系统日期时间

    我正在构建的应用程序的一部分只能在特定时间段内访问 我知道我们可以使用以下属性获取当前系统时间DateTime在 C 中 如果我使用DateTime属性 然后用户可以更改系统时间并在需要时访问应用程序的部分 请告诉我如何在 C 中获取实际当
  • LinqToExcel:Excel 列中的不同值

    对于各位专家来说 这可能是一件非常简单的事情 但我对 C 4 和 INTEROP 并不熟悉 因此 我很困惑 这是我的问题 我有一个包含重复数据的 Excel 列 我想将其修剪为仅具有唯一值 数据如下所示 ColA ColB 10 Adam
  • 如何将一个 xaml 页面导航到另一页面?

    我有 2 个页面 我需要将 mainpage xaml 导航到 login page xaml 但它让我崩溃你调用的对象是空的 在 Root Children Clear 我在 App xaml 中添加了以下代码 private void
  • C# 中“dynamic”和“object”关键字有什么区别? [复制]

    这个问题在这里已经有答案了 谁能简单解释一下 C 中 dynamic 和 object 关键字之间的区别 object 让我们先快速浏览一下 object 关键字 我不会谈论太多 因为它从 C 1 0 就已经存在了 该关键字只不过是 Sys
  • C# 中的可选数组参数[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中传递一个空数组作为可选参数的默认值 https stackoverflow com questions 3480382 passing an empty array as default v
  • 在 Eclipse 中编写链接特定行的注释

    我正在 Java 中使用 Eclipse 并且处理很长的类 我需要这样的功能 在方法的顶部注释中 例如 有一个由该方法执行的操作列表 对于列出的每个操作 我想将注释的一部分 超链接 到相关代码的特定行 然后使用 Ctrl Click 到该行
  • 基于我的 C# 类生成 xml 文件

    我有 xml 文件 每次都需要根据新客户的要求进行更新 大多数时候 xml 不正确是因为手动更新了 xml 文件 我正在考虑编写一个提供适当验证的程序 网络 Windows 并根据 ui 的输入 我将创建 xml 文件 下面是我的示例 xm
  • CLR 2.0 和 CLR 4.0 之间的区别

    我阅读了无数关于 C 4 0 新功能的博客 帖子和 StackOverflow 问题 甚至新的 WPF 4 0 功能也开始公开出现 我找不到但想知道的内容 从 C WPF 开发人员的角度来看 CLR 4 0 有哪些主要变化 CLR 4 0
  • 根据列属性值获取属性值

    List
  • 如何从 ConcurrentBag<> 中删除单个特定对象?

    随着新ConcurrentBag
  • directshow.net 视频输入设备过滤器枚举是否已损坏(在较新的环境中)?

    directshow net 示例文件夹 标记为 2010 February 中的每个示例都可以正常编译 并且那些从文件播放视频的示例效果也很好 但是 每个尝试枚举 FilterCategory VideoInputDevices 的示例始
  • LINQ FirstOrDefault 与Where(...).FirstOrDefault 之间的区别?

    之间有什么区别 FirstOrDefault someField gt someField Name Equals settings Text and Where someField gt someField Name Equals set
  • 如何按字段对列表进行排序

    美好的一天 4 你们大家 我有一个对象列表 我的对象喜欢 Product iPhone Category SmartPhone Product HP Category PC Product HTC Category SmartPhone 我
  • C# 中不区分大小写的替换不使用正则表达式?

    有没有一种方法可以在不使用 C 中的正则表达式的情况下对字符串进行不区分大小写的替换 像这样的东西 string x Hello x x Replace hello hello world 你可以尝试类似的东西 string str Hel
  • 在这种情况下垃圾收集器会做什么? [复制]

    这个问题在这里已经有答案了 我试图了解 GC 将如何行动的两种情况 1 有两个对象 object1 和 object2 object1 引用了 object2 object2 引用了 object1 现在 这两个对象都没有被使用 GC 可以
  • 如何在清除排序描述后删除wpf网格排序箭头

    我单击网格标题对列进行排序 然后单击 重置 按钮以通过其集合视图清除排序描述 但排序箭头图标仍然保留在标题中 如何去除它 我在尝试弄清楚如何完全清除网格中的排序时遇到了这个问题 感谢 krishnaaditya 回答如何清除标题中的排序箭头

随机推荐

  • 在WKWebView中加载html文本

    我用这个代码来加载我的html包含文本的文件WKWebView do guard let filePath Bundle main path forResource readBookNumber ofType html else print
  • 选中时更改复选框标签的颜色

    我试图在选中复选框时更改其标签的颜色 我之前在其他网站上做过此操作 但由于某种原因 我的代码无法在这个网站上运行 我正在使用 Drupal 7 和 bootstrap 3 我的复选框如下所示 div class checkbox div
  • 检测 JPG 图像的文件结尾

    我通过 TCP 连续地将许多图像从我的服务器发送到客户端 现在在客户端 我应该如何有效地检测到这是一个图像的结尾 以便我可以将其保存到文件系统 然后处理下一个图像等等 嗯 不能保证您不会在 jpeg 图像中找到 FFD9 找到 jpeg 图
  • RestSharp 单元测试 NUnit Moq RestResponse 空引用异常

    我在尝试将 Moq 与 RestSharp 结合使用时遇到一些挑战 也许这是我对 Moq 的误解 但由于某种原因 我在尝试模拟 RestResponse 时不断收到空引用异常 这是我的单元测试 Test public void GetAll
  • AWS Cognito 用户池如何防御暴力攻击

    我将使用 AWS Cognito 用户池产品作为应用程序的用户目录 但有几个问题 Amazon 是否向 Cognito 用户池发出限制请求 如果是 限制调用的速率限制是多少 Cognito 如何防御登录名 密码的暴力攻击 经过几个小时的搜索
  • 生成maven项目继承/聚合图

    任何人都知道是否可以轻松生成 Maven 项目继承 聚合图 如下面的链接中所示 http sonatype com books maven book reference figs web pom real multi png http so
  • 使用 Google Analytics 进行 Vuejs 事件跟踪

    我希望跟踪按钮和链接上的谷歌分析事件 通常在 jquery 中 我会传递数据属性中的值并获取它们并调用所需的函数 我知道我不应该使用数据属性 所以我正在寻找执行此操作的最佳方法 可以有多个按钮使用不同的数据用途 属性 执行不同的跟踪 所以我
  • 加入条件查询给出错误“无法找到属性”

    我有两张表 Student 和 Courses 我必须连接两个表并获取特定字段 class Student extends Parent Long id Cache usage CacheConcurrencyStrategy READ W
  • char[] 和 char* 之间的区别? [复制]

    这个问题在这里已经有答案了 可能的重复 C char var 和 char var 之间的区别 https stackoverflow com questions 1880573 c difference between char var
  • 运行我的第一个 java 应用程序时出现 InvalidModuleDescriptorException

    我已经开始学习 Java 并在尝试运行我的第一个程序时遇到了问题 如下所示 public class HelloWorld public static void main String args TODO Auto generated me
  • Rcpp:无法打开共享对象文件

    我正在尝试开发一个 R 包 它利用阵列火 https github com arrayfire arrayfire 感谢 Rcpp 库 我已经开始编写示例代码 让我们将其命名为你好世界 cpp 看起来像这样 include
  • SQLAlchemy 按字段排序()

    我试图按字段对 SQLAlchemy ORM 对象进行排序 但使用特定的值顺序 既不是升序也不是降序 如果我在 MySQL 上执行此查询 它看起来像 SELECT letter FROM alphabet table WHERE lette
  • 在字典中存储函数 [Python]

    我目前正在构建一个应用程序 我需要迭代一系列基本执行相同操作的步骤 从而节省很少量的代码 约 15 行 步骤的数量将根据项目的配置方式而有所不同 因此对我来说为每个潜在实例创建单独的函数似乎有点愚蠢 在 JavaScript 中 我会做这样
  • 以编程方式更改 ASP.NET GridView 中列的样式(填充)

    我需要更改 ASP NET GridView 中一列的填充 而外部 CSS 文件中定义的所有其他 CSS 属性应保持不变 我该怎么做 提前致谢 更新 下面是我解决问题的代码 protected void gvwMaster RowDataB
  • Mac Kiosk 模式 API - 防止用户退出

    我正在编写一个 Mac 10 6 10 7 应用程序 该应用程序在允许用户访问计算机之前对 Active Directory 域对用户进行身份验证 我被告知不能允许用户通过传统登录服务登录 我已准备好身份验证代码 现在正在尝试使此登录窗口全
  • 在nosetests中有条件跳过TestCase装饰器

    有没有办法跳过整个TestCase基于使用鼻子测试的自定义条件 我的意思是unittest skip style I tried import unittest unittest skip No reason class TestFoo o
  • 如何在我的 fcm 消息中使用图像和 vibrate_timings

    我希望我的 FCM 通知包含自定义图像和振动模式 Firebase 提供的 AndroidNotification 类作为示例具有这两个变量 但我还没有看到任何方法让它工作 我尝试通过 C 类 AndroidNotification 将这两
  • 如何使滚动超过某个点后出现浮动菜单? [复制]

    这个问题在这里已经有答案了 我想让四个菜单选项卡在您滚动经过页面上的某个点 例如 1000px 后出现 我希望它们出现时从左向右滑入 这就是我想要的 但位于浏览器的左侧 任何意见都会受到赞赏 首先 您需要从跟踪页面的滚动开始 其次 您需要在
  • 重定向到 ASP.NET Core 的自定义“访问被拒绝”页面

    我正在编写一个使用 Windows 身份验证的 ASP NET Core 1 0 网站 我已经实现了授权并且正在按预期工作 目前 当给定用户的身份验证失败时 会显示通用的 HTTP 403 错误页面 如何配置 ASP NET Core 以便
  • 如何在 .NET 4.0 中使用代码契约而不让我的代码看起来混乱?

    我已经开始使用代码契约 并发现很难立即发现方法的 本质 以这个 非常简单 为例 public static void UserAddNew string domain string username string displayName C