代码之家  ›  专栏  ›  技术社区  ›  urig

Microsoft代码契约是否不适合验证用户输入?

  •  4
  • urig  · 技术社区  · 15 年前

    我在其他地方看到过它的编写,因此,尽管企业库验证应用程序块面向验证用户输入,但代码契约旨在防止程序员错误。你会支持这个观点吗?为什么?

    3 回复  |  直到 13 年前
        1
  •  6
  •   Jay Sullivan    15 年前

    对。

    代码契约意味着要保持一个严格的编程接口,只有开发人员才能判断正确与否;用户不应该真的把事情搞砸。

    验证旨在验证数据;例如,验证数据不为null,或与正则表达式匹配。

        2
  •  2
  •   Gabe Timothy Khouri    15 年前

    TryParse 被添加到框架中(原始框架没有,并且由于所有可能的异常,使得验证变得很麻烦)。

        3
  •  0
  •   Stephen J. Anderson    13 年前

    代码契约用于断言总是正确的东西,如果它们不正确,那么代码中就有一个bug。这意味着它只能应用于由代码控制的条件。所以,不能用它们来表示“用户永远不会提供空字符串”,因为这超出了代码的控制范围。静态验证器将永远无法证明该语句-它如何知道用户将做什么?

    你能做的就是做一些语句,比如“给定一个用户输入,这个方法要么返回一个非空字符串,要么抛出一个异常”。

    推荐文章