首页 / 知识
关于样式:我应该*总是*支持在C#3.0中隐式输入的局部变量吗?
2023-04-12 13:43:00

Should I *always* favour implictly typed local variables in C# 3.0?雷斯哈珀当然是这么想的,从盒子里它会让你改变信仰。
到
那真的被认为是最好的款式吗? 当然,这是一个风格问题,但我同意dare:c 3.0隐式类型声明:到var还是不到var?.I认为使用var而不是显式类型会降低代码的可读性。在以下代码中:
结果是什么?一个int,一个字符串,一个guid?是的,这很重要,不,我不应该为了知道而钻研代码。这在代码示例中尤其令人讨厌。 杰夫写了一篇关于这个的文章,说他喜欢var,但那个家伙疯了! 我看到了stackoverflow成功的模式:挖掘旧的编码恐怖帖子,然后(危险风格)用一个问题来表达它们。 我只在很明显什么是VaR时使用它。 我明白:
我不清楚:
对于这个问题,我所看到的答案最好的总结是埃里克·利珀特的评论,它本质上说,如果具体的类型很重要,你应该使用具体的类型,而不是其他类型。本质上,类型信息应该保留在类型重要的地方。 我公司的标准是在任何地方都使用var,这是我们在阅读了各种建议之后得出的,然后花一些时间尝试,看看缺少注释类型信息是一种帮助还是一种阻碍。我们觉得这是一种帮助。 人们联系到的大多数建议(例如,dare's的建议)都是由从未尝试过用var而不是具体类型编码的人提出的建议。这使得这些建议几乎一文不值,因为它们不是根据经验说话,它们只是推测而已。 我能给你的最好建议是亲自尝试,看看什么对你和你的团队有效。 @jongalloway-var不一定会使代码更不可读。
第一个和第二个一样可读,并且需要较少的工作
这里,有一点,var可以使代码的可读性变差。我喜欢var,因为如果我把一个小数改成double,就不必在一堆地方改变它(不要说重构,有时我会忘记,让我var!) 编辑:我同意,只要看一下文章。大声笑。 有一个很好的讨论这个@编码恐怖 就我个人而言,我尽量减少它的使用,我发现它会损害可读性,特别是当从方法调用中分配变量时。 我有一种感觉,随着时间的推移,这将是堆栈溢出问题中最流行的问题之一。归根结底就是偏好。无论你认为什么都更易读。当类型在右侧定义时,我更喜欢var,因为它更简洁。当我从方法调用中分配变量时,我使用显式类型声明。 只有当你事先不知道类型的时候才有意义。 像resharper这样的工具的一个优点是,您可以随意编写代码,然后让它重新格式化为更易于维护的代码。我将r设置为始终重新格式化,以便在编写代码时可以看到实际使用的类型,但我几乎总是键入"var"。 好的工具让你拥有两个世界中最好的。 厕所。
我请求无罪!但你是对的,这似乎是一个比较流行的小问题。 关于这个主题有一篇非常好的msdn文章,它概述了一些您不能使用var的情况: 以下限制适用于隐式类型变量声明:
我建议检查它,以了解在代码中使用var的全部含义。 不,不总是,但我会说很多时间。类型声明并没有比匈牙利符号更有用。您仍然面临着同样的问题,类型可能会发生变化,重构工具也有助于解决这一问题,因为与不必在指定类型的地方进行更改相比,重构工具并不理想,除非是在一个单独的地方,这遵循了"不要重复自己"的原则。 可以为变量及其值同时指定类型名称的任何单行语句都应绝对使用var,特别是当它是long generic "最佳风格"是主观的,根据上下文而不同。 有时,使用"var"比键入一些非常长的类名更容易,或者如果您不确定给定函数的返回类型。我发现在处理Linq或In-for循环声明时,更多地使用了"var"。 其他时候,使用完整类名比使用"var"更好地记录代码更有用。 我觉得由开发人员决定。没有银弹。没有"一条真正的路"。 干杯! |
最新内容
相关内容
python支持r语言吗?
python支持r语言吗?,代码,名称,培训,官网,第一,语言,对象,字符串,方法,后缀,python中可以支持r语言。python提供了一个模块rpy2,可以较好地完python如何输入序列
python如何输入序列,名称,数据,合法,培训,列表,函数,赋值,序列,变量,语法,Python创建列表在Python中,创建列表的方法可分为2种,下面分别进行介python如何输入坐标
python如何输入坐标,对比,培训,坐标,直角坐标,表示,增减,字典,下面,方向,以上,python利用元组、字典可以表示坐标增减,具体做法为:defchange_dipython如何手动输入时间
python如何手动输入时间,时间,培训,单位,项目,平台,设计,日期,模块,新和,函数,python是一种跨平台的计算机程序设计语言。是一种面向对象的动如何用python输入数字
如何用python输入数字,数字,培训,整数,类型,函数,以上,时候,文档,发现,结果,开始使用python的时候想用input输入一个整数:a=input(“请输入一python里面如何输入数字
python里面如何输入数字,数字,代码,培训,方案,字母,里面,以上,提示,错误,方式,要求:用python写一个要求用户输入数字,如果不是数字就一直循环要python的三引号怎么输入
python的三引号怎么输入,培训,引号,字符,字符串,后面,定义,下面,表示,以上,时候,python中的三引号,3个单引号及3个双引号实际上3个单引号和3个python怎样计算输入的字符串的长度
python怎样计算输入的字符串的长度,培训,字符串,长度,字典,函数,列表,空格,语法,字符,实例,python中的字符串。可以使用len()函数来计算长度,python支持多继承吗
python支持多继承吗,培训,代码,不了,上边,函数,属性,例子,父亲,定义,母亲,python多继承单继承有时候可能满足不了我们所需的所以我们就会遇到python怎么循环输入
python怎么循环输入,培训,语句,条件,双数,表达式,详解,两者,命令,下面,次数,python中的循环语句,可使用for循环,或者while循环。两者的区别是,fopython如何判断输入是不是数字
python如何判断输入是不是数字,数字,异常,培训,字符,表示,字符串,不是,正则,方法,字母,python判断输入是不是数字的方法:在接收raw_input方法python如何输入平方
python如何输入平方,培训,平方根,函数,模块,方法,表达式,个数,实例,下面,以上,用python进行数学计算,可以使用python内置的函数模块,下面讲解几