C# 使用阻止在VB.NET中编译的自定义文本创建错误(#C中的错误#)

C# 使用阻止在VB.NET中编译的自定义文本创建错误(#C中的错误#),c#,vb.net,visual-studio-2010,error-handling,user-defined,C#,Vb.net,Visual Studio 2010,Error Handling,User Defined,您可以添加预处理器指令以在C#中的编译时导致错误,如下所示: #error This will cause a divide by zero 如何在vb.net中执行相同的操作 或 是否有其他方法可以创建一个在Errorlist中提供自定义有用信息的错误 TLDR:我想在VB.NET中做类似的事情: 没有与 #error 在VB.Net中 我发现没有办法添加有意义的错误来阻止编译。这里有一种方法可以实现您想要的。它并不完美。但它确实符合您的标准: 防止编译 将自定义文本放入错误列表窗口

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

#error This will cause a divide by zero
如何在vb.net中执行相同的操作

是否有其他方法可以创建一个在Errorlist中提供自定义有用信息的错误

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


没有与

#error 
在VB.Net中


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

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

  • 防止编译
  • 将自定义文本放入错误列表窗口
首先需要声明一个变量,该变量包含要在每个单词之间显示下划线的自定义文本。(是的,下划线很烦人,但它们是必要的)

暗显这是有用的描述你会得到字符串

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

通过转到项目属性和“编译”选项卡,可以启用“将警告视为错误”。像这样:


您还可以声明带有sure编译器错误的变量,例如:

Dim error As String=“这是一个非常有用的描述”

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

例如:

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

而不仅仅是反对票。我需要澄清的内容的评论会很好…没有看到任何这样做的指令。下面是vb.net指令的MSDN页面:似乎很确定没有任何等价物。不确定为什么会有反对票和“不清楚”的接近票。这实际上是一个好的、清楚的、简明的问题。。。试着用谷歌搜索一下,我什么也没找到。@tnw同意——我找不到任何地方有人提出了可行的解决方案。根本没有指令。你能做的最好的事情就是键入不可编译的文本。。。可能是这样的:
#如果调试(换行符)从不编译调试版本!(新行)#如果
这确实会导致编译器错误,则结束,但OP希望错误文本出现在Visual Studio的错误列表窗口中(而不是简单地产生编译器错误,这可以通过多种方式实现)。