问题描述
新入门学C#,问一个程序书写习惯的问题。我在使用函数时,我有点疑问。定义函数时参数名与被传递的变量命名怎么写好些呢?比如长度我们常用length,如果我在主函数中,定义了他,那么我在定义函数有一个参数也要用到长度,我不想也把他的名字写成length,大虾们写程序有什么好的建议呢?如果是多个函数都要用到他呢?另外传递ref,out及两种都不是的参数除功能外,有什么优劣?新手提问,多多包涵。
解决方案
解决方案二:
多多看看C#其他类和方法的命名大家通用能看明白refout思考你想让函数返回多个参数怎么办
解决方案三:
自然就好。比如说你在说这个话的时候,也是首先写了“长度”,然后在遇到“其它长度”概念冲突时才改口、打算用新的名词来重新命名不同的长度概念。这就是实事求是和自然的具体体现。编程也是一样。真正的实用规范就是“适应变化的规范”,而不是什么妄图“完美而形而上的规范”。因此编程中总是要不断重构的,只要不断精进就好。遗憾的是,有些人不善于重构,却整天想着只要学到一个照猫画虎的“命名规范”就什么问题都解决了,这是学院病的体现。对于out、ref,在.net中是用来让你的编译器帮你提前发现设计问题的好办法。当一个方法它的目的就是修改一个参数,就应该使用ref。而当它的目的就是不希望误修改参数,就应该使用out。例如对于Dictionary<K,T>对象的TryGetValue方法,设计者就是明确表达第二个参数是用来创建新的输出,而不想误修改什么参数,于是它使用了out而不是ref。
解决方案四:
这个没有什么规定,按自己习惯吧,不过最好风格一致,便于理解,别搞得自己看不懂就好了
解决方案五:
我觉得形式参数和实际参数写成一样也没什么呀。。如果实在想区分开,可以把形式参数lenth写成_length
解决方案六:
感谢各位回复。我的路还很长。
解决方案七:
我的路也很长
解决方案八:
一般来说,应该牺牲局部变量的可读性来首先保证函数接口的可读性。比如你说的,一个局部变量以及参数应该使用同样的名字,你应该把那个符合拼读习惯的、简洁美观的留给函数参数。这就好比你开车的时候,遇到和对向行驶的汽车会车但是道路不够宽的时候,你应该主动让出路权,把方便给别人,这是一种美德。