Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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# 分组变量类型除了看起来更整洁之外还有其他效果吗?_C#_.net_Variables - Fatal编程技术网

C# 分组变量类型除了看起来更整洁之外还有其他效果吗?

C# 分组变量类型除了看起来更整洁之外还有其他效果吗?,c#,.net,variables,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; 以这种方式分组有什么显著的优点或缺点吗?将两个示例粘贴到LINQPad中会

以防万一,我模糊的描述不足以让你了解全部情况,我的意思是:

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;

以这种方式分组有什么显著的优点或缺点吗?

将两个示例粘贴到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    

因此,没有功能上的差异,只是个人偏好。

将两个示例粘贴到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    

因此,没有功能上的差异,只是个人偏好。

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

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

/// <summary>Red color component</summary>
private int red;
/// <summary>Green color component</summary>
private int green;
/// <summary>Blue color component</summary>
private int blue;
///红色组件
私人int red;
///绿色分量
私人室内绿化;
///蓝色分量
私人int蓝色;
“分组”方法允许您为整个组指定单个文档注释:

/// <summary>RGB color components</summary>
private int red, green, blue;
///RGB颜色组件
私人int红色、绿色、蓝色;

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

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

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

/// <summary>Red color component</summary>
private int red;
/// <summary>Green color component</summary>
private int green;
/// <summary>Blue color component</summary>
private int blue;
///红色组件
私人int red;
///绿色分量
私人室内绿化;
///蓝色分量
私人int蓝色;
“分组”方法允许您为整个组指定单个文档注释:

/// <summary>RGB color components</summary>
private int red, green, blue;
///RGB颜色组件
私人int红色、绿色、蓝色;


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

因此,从我从评论和答案中收集的信息来看;分组和不分组之间没有实际的性能差异;由于各种原因,分组通常被“不赞成”。然而,如果将密切相关的变量分组,分组变量似乎是有利的,因为这些变量总是共享相同的类型可访问性注释。这可以提高效率和工作流程性能,但可能还不太清楚它被广泛使用的程度。

因此,从我从评论和答案中收集的信息来看;分组和不分组之间没有实际的性能差异;由于各种原因,分组通常被“不赞成”。然而,如果将密切相关的变量分组,分组变量似乎是有利的,因为这些变量总是共享相同的类型可访问性注释。这可以提高效率和工作流程性能,但可能还不太清楚它在哪里被广泛使用。

我强烈怀疑这两者会产生相同的结果。对我来说,不分组看起来更整洁。看起来整洁只是一个意见问题;)还有一个旁注。在11年的C#生涯中,我从未见过有人在代码中真正做到这一点。你最终可能会被骂。缺点-可读性,但它是基于观点的。我不认为这是基于观点的。尽管OP在标题中包含了“整洁”一词,但他问这两个声明是否有不同的效果。我强烈怀疑这两个声明会产生相同的结果。对我来说,不分组看起来更整洁。看起来整洁只是一个意见问题;)还有一个旁注。在11年的C#生涯中,我从未见过有人在代码中真正做到这一点。你最终可能会被骂。缺点-可读性,但它是基于观点的。我不认为这是基于观点的。尽管OP在标题中包含了“整洁”一词,他还是在问这两个声明是否有不同的效果。很好!天哪,顺便说一句,wtf是IL?@n00dles。哦,对了!那东西!那么,我如何像你那样检查性能呢?我能在VS2017内完成吗?@n00dles我用过LINQPad。还有其他方法@n00dles VS 2017包含一个名为(又名中间语言反汇编程序)的命令行实用程序。也就是说,我可以保证LINQPad更容易。很好的测试工具,不管怎样。很好!天哪,顺便说一句,wtf是IL?@n00dles。哦,对了!那东西!那么,我如何像你那样检查性能呢?我能在VS2017内完成吗?@n00dles我用过LINQPad。还有其他方法@n00dles VS 2017包含一个名为(又名中间语言反汇编程序)的命令行实用程序。也就是说,我可以保证LINQPad更容易。很好的测试工具,不管怎样.GA!(很好的回答)(…现在是多余的)所以如果你想对一组人发表全面的评论,这是很好的。很高兴认识你,嘎!(很好的回答)(…现在是多余的)所以如果你想对一组人发表全面的评论,这是很好的。很高兴知道。