一行中的单个和多个声明之间有什么区别?

时间:2012-02-02 08:14:54

标签: c#

我想知道这两种声明变量的方式之间的区别。

输入1

private string procedure_add = "";
private string procedure_update = "";
private string procedure_delete = "";

类型2

private string procedure_add = "", procedure_update = "", procedure_delete = "";

这会产生同样的效果吗?内存消耗是否相同?

5 个答案:

答案 0 :(得分:4)

没有任何区别。这都是关于可访问性的。代码看起来的方式。 假设你有10000多行代码,在编辑时你可能会因为在声明中识别“,”而感到难过。

  1. 如果您有一个或两个变量,则将其声明为一行
  2. 在单独的行中编写每个声明将使代码更清晰,并且更好地进行调试。
  3. 我更喜欢使用这种方法。

    private string yourVar = String.Empty;
    

答案 1 :(得分:1)

没有任何区别。只是编码风格。

编辑

正如@Aphelion在第一种情况下提到的那样,您可以修改辅助功能。 从代码生成的角度来看,两个版本产生完全相同的IL

MyClass..ctor:
IL_0000:  ldarg.0     
IL_0001:  ldstr       ""
IL_0006:  stfld       UserQuery+MyClass.procedure_add
IL_000B:  ldarg.0     
IL_000C:  ldstr       ""
IL_0011:  stfld       UserQuery+MyClass.procedure_update
IL_0016:  ldarg.0     
IL_0017:  ldstr       ""
IL_001C:  stfld       UserQuery+MyClass.procedure_delete
IL_0021:  ldarg.0     
IL_0022:  call        System.Object..ctor
IL_0027:  ret    

答案 2 :(得分:0)

没有区别,一个只是一个简短的手。

答案 3 :(得分:0)

我认为没有什么不同,从我理解的第二种类型是最小化代码行。

答案 4 :(得分:0)

除了整体“它们是相同的,但可读性不同”之外,我想补充3条评论:

  1. 在Visual Basic 6(及更早版本)中Dim x , y as Integer将导致y为整数且x为变体
  2. 在C int *ip, i;中会导致ip成为指向int的指针而i将成为int。
  3. 在不安全的C#代码int *ip, i;中将导致ip成为指向int的指针,而我也是指向int的指针。