【问题标题】:Create Error with custom text that prevents compiling in VB.NET (#error in C#)使用阻止在 VB.NET 中编译的自定义文本创建错误(C# 中的#error)
【发布时间】:2013-07-31 13:23:10
【问题描述】:

您可以在 C# 中添加一个预处理器指令以在编译时导致错误,如下所示:

#error This will cause a divide by zero

如何在 vb.net 中与this 一样?

是否有另一种方法来创建错误,在错误列表中提供自定义有用信息。

TLDR: 我想在 VB.NET 中做类似的事情:

【问题讨论】:

  • 而不仅仅是投反对票。我需要澄清的评论会很好......
  • 没有看到任何执行此操作的指令。这是 vb.net 指令的 MSDN 页面:msdn.microsoft.com/en-us/library/7ah135z7.aspx
  • This answer 似乎很确定没有任何等价物。
  • 不知道为什么会有反对票和接近投票“不清楚”。这实际上是一个很好、清晰、简洁的问题...尝试谷歌搜索,我没有找到任何东西。
  • @tnw 同意——我在任何地方都找不到有人为此提出了可行的解决方案。根本没有指令。你能做的最好的事情就是输入无法编译的文本......也许是这样的:#if DEBUG (newline) DON'T EVER COMPILE DEBUG BUILDS! (newline) #end if

标签: c# vb.net visual-studio-2010 error-handling user-defined


【解决方案1】:

这是实现您想要的目标的一种方法。它并不完美。但它确实符合您的标准:

  • 阻止编译
  • 将自定义文本放入错误列表窗口

您首先需要使用要显示的自定义文本声明一个变量,并在每个单词之间加上下划线。 (是的,下划线很烦人,但它们是必要的)

将 This_is_as_useful_a_description_as_your_gonna_get 作为字符串调暗

这会创建一个未使用的变量。这与 IDE 将警告视为错误的能力相结合,将为您提供与您正在寻找的内容相近的东西:

您可以通过转到项目属性和编译选项卡来打开将警告视为错误。像这样:

【讨论】:

    【解决方案2】:

    没有等价于

    #error 
    

    在 VB.Net 中

    我发现没有办法添加有意义的错误来阻止编译。

    【讨论】:

      【解决方案3】:

      您还可以声明一个带有确定编译器错误的 var,例如:

      Dim error As String = "This is as useful a description as your gonna get"

      因此避免了所有的下划线。 这将自动导致编译错误(“关键字作为标识符无效”),而不是警告。

      例子:

      #if _A_DEPRECATED_DEFINE_
      DIM error As String = "remove the define: is deprecated!"
      #end if
      

      【讨论】:

      • 这确实会导致编译器错误,但 OP 希望错误文本出现在 Visual Studio 的错误列表窗口中(而不是简单地产生编译器错误,这可以通过多种方式完成)。
      猜你喜欢
      • 1970-01-01
      • 2013-11-17
      • 2011-05-28
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多