【问题标题】:VS2010 Comments with an ampersand "&" get marked as warningsVS2010 带有 & 符号的评论被标记为警告
【发布时间】:2013-11-06 05:51:22
【问题描述】:

这可能是一件简单的事情,但在 VB2010 中,我喜欢将我的源代码放在例程 cmets 中。一些 URL 嵌入了 & 符号,这会被 IDE 标记为警告。

''' <summary>
''' routine that creates a new file based on a definition query.
''' </summary>
''' <param name="newLoc"></param>
''' <returns></returns>
''' <remarks>
''' http://forums.esri.com/Thread.asp?c=93&f=992&t=194920#580036
''' http://forums.esri.com/Thread.asp?c=93&f=992&t=155005#452664
''' </remarks>
Public Function DoSelectLoc(ByVal newLoc As NewLocation) As Boolean
   'my routine
End Function

上面的两个 URL 被标记为警告。我尝试了几种替代方法来编写 URL,但都没有奏效。我已经尝试了 HTML 代码&amp;#38;,但仍然有 & 符号。我知道 IDE 对 cme​​ts 使用 XML,但必须有某种方法可以编写 URL,而不会收到警告,并且仍然保持相同的引用链接。

更新:基于此处http://social.msdn.microsoft.com/Forums/en-US/f14e7b55-c352-4ca5-a82c-bca3b83818db/double-ampersand-in-a-code-comment-causes-intellisense-error 的讨论,我决定使用 CDDATA 来封装我的 URL,如下所示:

''' <remarks>
''' <![CDATA[
''' http://forums.esri.com/Thread.asp?c=93&f=992&t=194920#580036
''' http://forums.esri.com/Thread.asp?c=93&f=992&t=155005#452664
''' ]]>
''' </remarks>

似乎可以让链接正常工作并且不会触发 Visual Studio 警告。

【问题讨论】:

  • Martin Honnen 的回答完美地解决了这个问题。但只是想澄清一下,您提到警告的原因(无论如何对执行没有影响)是因为摘要类型 cmets 的 XML 结构(msdn.microsoft.com/en-us/magazine/dd722812.aspx)。您可以在“常规 cmets”(以单个 ' 开头)中毫无问题地使用与号。 url 可能会突出显示(如果启用了相应的文本编辑器选项),尽管这一事实不会产生任何影响(甚至不会发出警告)。
  • 是的,最初用单引号评论尝试过,但想升级到更好的方法。尝试了 &它破坏了链接。
  • 你期待什么? url 没有 &。你必须选择:如果你想要 cmets,你可以在那里放任何你想要的东西(url 将是全功能的,甚至可以作为链接工作);如果您想要 XML 结构,则必须遵守 XML 要求,并最终转义/替换某些字符。请记住,这与 VB 或 VS 无关,而是与 XML 语言有关。
  • 虽然可能有其他选择(对 XML 不太熟悉):stackoverflow.com/questions/6519457/… 无论如何要明确这个想法:您应该将研究重点放在 XML 上,而不是 VB/VS cmets。
  • 谢谢。这是一个很好的讨论的一部分。去年这一直困扰着我。很高兴我找到了一些东西。

标签: xml vb.net url comments ampersand


【解决方案1】:

正确的 XML 语法是 &amp;amp;,即

''' <remarks>
''' http://forums.esri.com/Thread.asp?c=93&amp;f=992&amp;t=194920#580036
''' http://forums.esri.com/Thread.asp?c=93&amp;f=992&amp;t=155005#452664
''' </remarks>

【讨论】:

  • 好的,我试过了,但是链接坏了。换句话说,当我单击链接时,网站会以未知的线程 ID 响应。如果我按原样保留&符号,则线程打开没有问题。
【解决方案2】:

基于here 的讨论,我决定使用CDATA 来封装我的网址,如下所示:

''' <remarks>
''' <![CDATA[
''' http://forums.esri.com/Thread.asp?c=93&f=992&t=194920#580036
''' http://forums.esri.com/Thread.asp?c=93&f=992&t=155005#452664
''' ]]>
''' </remarks>

似乎可以让链接正常工作并且不会触发 Visual Studio 警告。

【讨论】:

  • 我已经添加了您的整个解决方案来帮助(未来的)读者。希望你不要介意。随意完全改变它(如果你愿意,可以恢复到原来的样子)。
猜你喜欢
  • 2013-01-04
  • 2012-02-09
  • 2012-01-19
  • 2011-07-11
  • 1970-01-01
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
相关资源
最近更新 更多