我有一类具有一组整数的类

foo()
{
  int a;
  int b;
  int c;
  int d;
  ....
  string s;
}

现在的问题是最好的可读性,foo()的init()函数应该看起来像
void init()
{
  a=b=c=d=1; //for some reason they are init to 1;
  s = "abc";
}

或者
void init()
{
  a=1;
  b=1;
  c=1;
  d=1;
  s = "abc";
}



类中使用字符串的原因暗示可能存在其他相同类型的组,当然,类可能会随着需求的变化而增长

编辑:在这个问题走得太远之前,这个问题的意图很简单:
在有效的C++项目12中(在构造函数中初始化优先于赋值),Scott使用链赋值代替a = c; b = c;我确定他知道何时使用什么,但是我还记得我读过的书也建议使用int。 int b;在类似的情况下。在我的程序中,我遇到了类似的情况,需要初始化一组相关的各个内置类型,并且我发现通过进行链分配确实可以更容易阅读,尤其是在类具有许多其他不同类型的实例变量的情况下。这似乎与我阅读的书和我的内存相矛盾,因此产生了问题。

最佳答案

我的个人偏好是a=b=c=d,原因如下:

  • 简洁,节省行
  • 传达了(a/b/c/d)初始化为同一事物的概念,它们与
  • 相关

    但是,请注意:
  • 如果a/b/c/d不相关(恰好被初始化为1),则不要这样做。您将降低代码的可读性。例子:
    a=c=1; // Foo-function relatedb=d=1; // Bar-function related
  • 像这样的
  • 链式分配将来会降低您为变量分配不同的初始值的灵活性-因为那样的话,您将不得不再次拆分它们。

  • 不过,我个人的建议是将分配链接到与概念/使用相关的变量。在实际实践中,更改分配的需求通常不会经常出现,因此第2条警告通常不会造成问题。

    编辑:我的建议可能违反已发布的指南。查看评论。

    关于c# - 可读性a = b = c或a = c; b = c ;?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5373171/

    10-13 08:24