Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么resharper将此列为改进_C#_Resharper - Fatal编程技术网

C# 为什么resharper将此列为改进

C# 为什么resharper将此列为改进,c#,resharper,C#,Resharper,为什么resharper会转换以下代码: if (a && !b && c) { do_something(); } 到 我看不出其中一个比另一个有什么进步。 (显然,这段代码嵌套在foreach循环中,因此使用了continue关键字)。与以往的所有重构一样,它可以根据个人偏好或特定上下文来确定重构是否是一种改进。如果你喜欢,就用它,如果你不喜欢,就不要。根据定义,重构在功能上是等价的,Resharper总是第一个退出。如果它是一个函数,它将尝试返回。

为什么resharper会转换以下代码:

if (a && !b && c)
{
    do_something();
}

我看不出其中一个比另一个有什么进步。
(显然,这段代码嵌套在foreach循环中,因此使用了continue关键字)。

与以往的所有重构一样,它可以根据个人偏好或特定上下文来确定重构是否是一种改进。如果你喜欢,就用它,如果你不喜欢,就不要。根据定义,重构在功能上是等价的,Resharper总是第一个退出。如果它是一个函数,它将尝试返回。这样做是为了避免嵌套。在你的例子中,这真的没有什么区别。如果你的
做某事(),它会减少嵌套代码片段很大,而不是单个调用。这被归类为重构(锤子图标),而不是改进(灯泡)。正如其他人所说,重构只是可能的改变,不一定是改进。谢谢大家的回复。我已经决定忽略可能的更改,因为它对我来说不太可读。我不太关心我当前项目的优化,但我认为值得提出这个问题来加深我的理解。你的回答使我的想法更加复杂。非常感谢。
if (!a || b|| !c)
    continue;
do_something();