可读性a = b = c或a = c; B = C;?
比方说,我有一个有一组整数的类
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"; }
?
类中字符串的原因是可能存在其他相同类型的组的提示,当然,类可能会随着需求的变化而增长
编辑:在这个问题走得太远之前,这个问题的意图很简单:在Effective C ++第12项中(更喜欢初始化到构造函数中的赋值),Scott使用链赋值而不是a = c; B = C; 我确信他知道什么时候使用什么,但我也记得我读过的书也建议使用int a; int b; 在类似的任务情况下。 在我的程序中,我有类似的情况,需要初始化一组相关的单个内置类型,我发现通过使链分配确实使它更容易阅读,特别是如果类有许多其他不同类型的实例变量。 它似乎与我读过的书和我的记忆相矛盾,因此这个问题。
我的个人偏好是a=b=c=d
,原因如下:
- 它简洁,节省线条
- 它传达了(a / b / c / d)被初始化为同一事物的概念 ,它们是相关的
但是,请注意:
-
如果a / b / c / d不相关(并恰好初始化为1),请不要这样做。 您将降低代码的可读性。 例:
a=c=1; // Foo-function related
b=d=1; // Bar-function related
-
像这样的链接分配会降低您将来为变量分配不同初始值的灵活性 – 因为那时您将不得不再次分解它们。
尽管如此,我个人的建议是对与概念/用法相关的变量进行链接分配。 在实际操作中,改变作业的需要通常不会经常出现,所以警告#2通常不会造成问题。
编辑:我的建议可能违反已发布的指南。 查看评论。
我碰巧更喜欢链式版本,但这完全是一个偏好问题。
但请注意
a = b = c = 0;
相当于:
c = 0; b = c; a = b;
并不是
a = 0; b = 0; c = 0;
(并不是说你先决定哪个分配对你来说很重要)
我想这是一个最具可读性的意见问题。 (显然是这样……否则你不会问。)
然而,Oracle的“Java TM编程语言代码约定”明确表示要使用单独的赋值语句:
10.4变量分配。 “避免在一个语句中将多个变量分配给相同的值。这很难读。”
我的看法?
- 遵循您项目的规定/约定的风格规则,即使您不喜欢它们1 。
- 如果您的项目尚未(尚)规定/约定的样式规则:
1 …还是出去
上述就是C#学习教程:可读性a = b = c或a = c; B = C;?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/950965.html