Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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# if循环和度量中的更多代码行_C# - Fatal编程技术网

C# if循环和度量中的更多代码行

C# if循环和度量中的更多代码行,c#,C#,我正在编写一个C#方法,它检查了IF条件并 如果条件为真, 我将执行10行代码, 其他的 我将只执行2行 ReSharper建议我应该反转if循环中的条件,以便if循环中的行数少于else循环中的行数 样本: if(condition) { // StatementBlock of 10 lines } else { // StatementBlock of 2 lines } 请让我知道这背后的指标/性能,因为无论哪种方式,我们最终都会有两个代码块。切换这两个代码块不

我正在编写一个C#方法,它检查了IF条件并 如果条件为真, 我将执行10行代码, 其他的 我将只执行2行

ReSharper建议我应该反转if循环中的条件,以便if循环中的行数少于else循环中的行数

样本:

if(condition)
{
//      StatementBlock of 10 lines
}
else
{
//        StatementBlock of 2 lines
}

请让我知道这背后的指标/性能,因为无论哪种方式,我们最终都会有两个代码块。

切换这两个代码块不会获得任何性能增益,但是我认为如果您这样做,代码的可读性会稍高一些

if a > b
    do 1
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
else 
    do 1
    do 2
这本书比我的书难读一点

if b > a
   do 1
   do 2
else
   very
   long
   code
   that 
   might 
   require 
   scrolling
   to 
   read 

切换这两个块不会带来任何性能提升,但是我认为如果这样做,代码的可读性会稍微提高一些

if a > b
    do 1
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
    .
else 
    do 1
    do 2
这本书比我的书难读一点

if b > a
   do 1
   do 2
else
   very
   long
   code
   that 
   might 
   require 
   scrolling
   to 
   read 

ReSharper建议了很多东西,把它颠倒过来,看看它建议再次颠倒过来。ReSharper建议重构,因为重构就是它所做的。我不认为在性能上有什么区别,但有时它可以帮助开发人员阅读代码的逻辑,在那里他们可以很容易地看到逻辑门和两条路径。如果第一条路径是looooong,他们可能无法跟踪代码路径,或者他们可能深入到第一个代码块中,忘记了(金鱼内存)导致第二个代码块的条件。(也许更好的办法是将第一个块,也可能是第二个块,分离成一个单独的私有描述命名方法!),不管Resharper建议如何,做对你最有意义的事。我认为建议的改变更具可读性。仅仅因为ReSharper建议改变并不意味着它给了你最好的选择。你不仅应该考虑它是否是一个很好的改变(我拒绝大多数LINQ方法,因为我发现它们不可读,更难调试),但你也应该看看正确答案是否完全是另外一回事。在这种情况下,我想是的——克里斯·辛克莱建议把这10行分开时说得对。@saravanan不确定那是什么。私有方法可以是静态的,也可以是实例的(取决于行正在执行的操作的上下文)。我的意思是,如果(条件)DoThisDescriptiveThing(),您的代码看起来可能会更好;else dootherDescriptioning()ReSharper建议了很多东西,将其反转,然后查看它建议再次反转。ReSharper建议重构,因为重构就是它所做的。我不认为在性能上有什么区别,但有时它可以帮助开发人员阅读代码的逻辑,在那里他们可以很容易地看到逻辑门和两条路径。如果第一条路径是looooong,他们可能无法跟踪代码路径,或者他们可能深入到第一个代码块中,忘记了(金鱼内存)导致第二个代码块的条件。(也许更好的办法是将第一个块,也可能是第二个块,分离成一个单独的私有描述命名方法!),不管Resharper建议如何,做对你最有意义的事。我认为建议的改变更具可读性。仅仅因为ReSharper建议改变并不意味着它给了你最好的选择。你不仅应该考虑它是否是一个很好的改变(我拒绝大多数LINQ方法,因为我发现它们不可读,更难调试),但你也应该看看正确答案是否完全是另外一回事。在这种情况下,我想是的——克里斯·辛克莱建议把这10行分开时说得对。@saravanan不确定那是什么。私有方法可以是静态的,也可以是实例的(取决于行正在执行的操作的上下文)。我的意思是,如果(条件)DoThisDescriptiveThing(),您的代码看起来可能会更好;else dootherDescriptioning()