除了看起来更整洁之外,分组变量类型是否有任何影响?

时间:2017-07-17 17:35:38

标签: c# .net variables

只是因为模糊的描述不足以让你全面了解,我的意思是这样:

private bool
    f = true,
    oo = false,
    b,
    a,
    r = false;

而不是:

private bool f = true;
private bool oo = false;
private bool b;
private bool a;
private bool r = false;

以这种方式分组是否有明显的优势或劣势?

3 个答案:

答案 0 :(得分:4)

将两个示例粘贴到LINQPad中会产生相同的IL结果:

IL_0000:  nop         
IL_0001:  ldc.i4.1    
IL_0002:  stloc.0     // f
IL_0003:  ldc.i4.0    
IL_0004:  stloc.1     // oo
IL_0005:  ldc.i4.0    
IL_0006:  stloc.s     04 // r
IL_0008:  ret    

所以没有功能差异,只是个人偏好。

答案 1 :(得分:3)

编译器为两个代码片段生成的代码将是相同的,因此唯一剩下的问题是生成的代码的可维护性。

就可维护性而言,主要区别在于“未组合”方法允许您为每个单独的变量编写文档注释,即

/// <summary>Red color component</summary>
private int red;
/// <summary>Green color component</summary>
private int green;
/// <summary>Blue color component</summary>
private int blue;

虽然“分组”方法允许您为整个组指定单个文档注释:

/// <summary>RGB color components</summary>
private int red, green, blue;

两种方法都不比另一方好;他们只是不同。

答案 2 :(得分:0)

从我可以从评论和答案中收集到的内容;分组和非分组之间没有实际的性能差异;出于各种原因,分组通常是“不赞成的”。但是,如果要对密切相关的变量进行分组,将始终共享相同的类型可访问性评论。这可以提高效率和工作流程性能,但可能不太明显,它被广泛使用。