【问题标题】:C# preprocessor-like protection类似 C# 预处理器的保护
【发布时间】:2014-03-24 09:19:34
【问题描述】:

我想知道是否可以在代码中用 C# 创建一条规则,以防止“编译”并打印我选择的错误消息。例如:

假设:

  • 我有一个将字节向量作为参数的方法。
  • 在该方法中,我检查了这个字节向量的长度。
  • 如果它太长,太短等我想阻止程序 编译并在错误列表中打印错误消息。

我知道我可以使用断言之类的东西,但这适用于已经编译的代码。

【问题讨论】:

  • 不,你不能,因为它是运行时检查(你在编译时不知道数组大小,数组大小可能/将根据运行时条件改变)所以你可以做的是抛出一个运行时异常(或使用断言)。代码合同(和静态分析)可能会帮助您处理类似的事情,但在这种情况下不会。 IMO 最好的办法是单元测试,它将检查静态类型/检查无法处理的运行时行为。

标签: c# c-preprocessor


【解决方案1】:

我会回答 NO,因为编译器(在编译时)无法在运行时知道参数的值。

祝你有美好的一天,

阿尔伯托

编辑: 检查您问题的第一条评论,因为与此相比,它是一个更完整的答案:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2013-06-18
    • 2010-09-07
    • 1970-01-01
    • 2011-07-02
    相关资源
    最近更新 更多