我注意到,当我从VB.NET迁移到C#时,成员的XML文档在C#中并不像在VB.NET中那样“智能”。首先,当你引用其他东西时,它缺乏智能感知。例如,在下面的屏幕截图中,我有方法,我试图在文档中引用String
。使用VB,我得到intellisense下拉列表,而使用C#,我没有。
其次,如果我更改参数的名称,它不会在C#中产生警告,因为它在VB.NET中表示文档不再与方法签名匹配:
这特别“危险”,因为它可能导致您的API文档不正确。
这些差异的原因是什么? C#以这种方式受限是否有充分的理由?或者我应该以不同的方式看待它还是以不同的方式做某事?
答案 0 :(得分:3)
您只是看到C#和VB.NET IDE的副作用已由Microsoft内部的不同组实现。小团体是任何软件公司的生存策略,微软也不例外。
这些努力背后的历史,在C#出现之前很久,Visual Basic就拥有强大的IDE支持。 VB.NET团队肯定已经开始实施他们的。这并不总是一个优势,他们也不得不使它类似于早期的IDE,以减少他们以前的VB客户必须经历的采用冲击。 VB.NET已经是一个非常重要的版本,与早期的VB版本完全不同。与你现在遇到的那个没什么不同。
他们最终有不同的目标。例如,在您的屏幕截图中非常明显,VB.NET IDE具有带有“Common”和“All”选项卡的选项卡式窗口。这已经让很多VB.NET程序员陷入困境,从未弄清楚他们有时需要“全部”。 C#没有那种,而不是那种曾经积极隐藏任何东西的语言。
我们无法帮助您解决这些差异,没有针对它们的设置。您可以在user voice提交功能请求,但这可能会浪费您的精力。改变IntelliSense的先前要求始终得到满足,“谢谢,我们将在下一个版本中考虑它!”没有他们实施。
你会习惯它,所有的C#程序员都会这样做。
答案 1 :(得分:1)
对于使用Ghost Doc的第一部分,这是一个好主意。
至于第二个,需要在项目设置中检查XML Documentation
文件复选框。所有缺失/不正确的XML注释都会显示为警告。
如果您绝对想确保没有任何警告转入生产,请启用Treat warnings as errors
这是一个好主意。