在这种情况下,谨慎(啥都不做)是勇气(猜测)的更好部分吗?

Posted

技术标签:

【中文标题】在这种情况下,谨慎(啥都不做)是勇气(猜测)的更好部分吗?【英文标题】:Is Discretion (doing nothing) the better part of valor (making a guess) in this case?在这种情况下,谨慎(什么都不做)是勇气(猜测)的更好部分吗? 【发布时间】:2014-04-26 01:28:04 【问题描述】:

R# 告诉我永远不会分配 var。

我在想,“如果是这种情况,那就去掉它 - 删除声明。”但是 R# 的建议是不同的和多种多样的:

我应该转动哪个旋钮,还是应该保持平足和苍白的闲逛?

注意:这段代码不是我设计或编写的,所以我不知道意图是什么;其中有一些非常奇怪的 Rube Goldbergesque “行为”;打个比方,我害怕从堤坝上拔出一根手指,或者把压断单峰骆驼脊椎的稻草连起来。

【问题讨论】:

+1 用于史诗般的英语使用。 【参考方案1】:

如果您不确定要更改的内容,请不要更改!特别是如果您认为它可能会破坏某些东西(我建议在进行任何更改之前先测试代码)

ReSharper 向您发出警告 - 您完全可以忽略它。您可以更改检查的严重性以显示为提示,或根本不显示。或者您可以添加特殊的 cmets,例如:

// ReSharper disable UnassignedField.Compiler

// ReSharper enable UnassignedField.Compiler

这将禁用 cmets 之间的这些警告。 “'Unassigned field' 检查的选项”子菜单将具有为您生成 cmets 的选项。

【讨论】:

【参考方案2】:

如果 ReSharper 告诉您该字段未分配,但未提供帮助您删除它,那将是由于该字段未分配,但它 参考。

使用“查找用法”查找对该字段的所有引用。然后,记住该字段将始终具有其默认值 (false),问问自己是否不应该将所有对该字段的引用替换为文字值 false

在您完成对字段的所有引用之后,我相信 ReSharper 会提议让您删除未使用的字段。

【讨论】:

如果字段始终具有相同的值,则将其更改为常量可能有意义。

以上是关于在这种情况下,谨慎(啥都不做)是勇气(猜测)的更好部分吗?的主要内容,如果未能解决你的问题,请参考以下文章

正确测试方法在某些情况下啥都不做

自动完成啥都不做。怎么了?

如何创建啥都不做的#define?

添加一个没有 Thread.sleep 的延迟和一个啥都不做的 while 循环

C# 要么返回 false 要么啥都不做

拯救错误啥都不做?