只是因为模糊的描述不足以让你全面了解,我的意思是这样:
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;
以这种方式分组是否有明显的优势或劣势?
答案 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)
从我可以从评论和答案中收集到的内容;分组和非分组之间没有实际的性能差异;出于各种原因,分组通常是“不赞成的”。但是,如果要对密切相关的变量进行分组,将始终共享相同的类型,可访问性和评论。这可以提高效率和工作流程性能,但可能不太明显,它被广泛使用。