新手求指点函数书写习惯问题

问题描述

新入门学C#,问一个程序书写习惯的问题。我在使用函数时,我有点疑问。定义函数时参数名与被传递的变量命名怎么写好些呢?比如长度我们常用length,如果我在主函数中,定义了他,那么我在定义函数有一个参数也要用到长度,我不想也把他的名字写成length,大虾们写程序有什么好的建议呢?如果是多个函数都要用到他呢?另外传递ref,out及两种都不是的参数除功能外,有什么优劣?新手提问,多多包涵。

解决方案

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

时间: 2024-09-25 04:36:06

新手求指点函数书写习惯问题的相关文章

图像配准-function m=func(~,~);提示可能为设置函数返回值“m”,怎么修改,新手求指点

问题描述 function m=func(~,~):提示可能为设置函数返回值"m",怎么修改,新手求指点 function m=func(~,~) im1=imread('E:im2.jpg'); im2=imread('E:im1.jpg'); im1= rgb2gray(im1); im2= rgb2gray(im2);%本程序处理的是灰度图像 im1 = im2double(im1); im2 = im2double(im2); im1_size=size(im1); im1_l

c语言-C语言完数问题,新手求指点~谢谢

问题描述 C语言完数问题,新手求指点~谢谢 C语言课后习题,求1000以内的完数,按以下格式输出: 6 its factors are 1,2,3 为什么我改成和答案一样的都输出空., 代码如下:#include int main() { int m,i,s; for(m=2;m<1000;m++)//2-1000个数 { s=0; for(i=1;i<=m;i++) if((m%i)==0)s=s+i; if(s==m) { printf("%d,its factors are&q

遍历-求用C语言实现下面问题 新手求指点~谢谢~

问题描述 求用C语言实现下面问题 新手求指点~谢谢~ 假设图中数据元素类型是字符型,请采用邻接矩阵或邻接表实现图的以下基本操作: (1)构造图(包括有向图.有向网.无向图.无向网): (2)根据深度和广度优先遍历图. 解决方案 包括有向图.有向网.无向图.无向网,根据深度和广度优先遍历图.http://blog.csdn.net/creazyapple/article/details/7949064http://blog.csdn.net/lwwworkspace/article/details

python 读写-新手求指点python有关try except

问题描述 新手求指点python有关try except 代码: val=input('enter:') try: val=int(val) print(val) except: print('not an int.') 然后运行, >>>========RESTART========== >>> enter:2.3 not an int. >>> 为什么不是val=int(2.3)=2,然后print 2 呢? 解决方案 已经发生异常了 并没有执行i

测试-本想牛刀小试没想到刀被砍卷刃了 一道小题 新手求指点 谢谢了

问题描述 本想牛刀小试没想到刀被砍卷刃了 一道小题 新手求指点 谢谢了 输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2... xn, yn),为了简化问题,这里的所有坐标都用整数表示. 输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理. Output 对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数

matlab 语音读取-新手求指点,请问这个是怎么错了?该怎么修改?

问题描述 新手求指点,请问这个是怎么错了?该怎么修改? 解决方案

formview的数据如何赋给变量??新手求指点!!

问题描述 我现在做的是商品展示页面goods.aspx,用的是formview控件展示商品内容.现在我需要在goods.aspx.vb中使用formview中的某个数据(就拿Currentprice举例):让其赋值给某个变量,应该怎么写(VB)下面是我的前台的小部分代码:<asp:FormViewID="fvwItemDetails"runat="server"DataSourceID="SqlDataSource1"Height=&quo

新手入门-新人,求指点,新入门java

问题描述 新人,求指点,新入门java java中什么时候需要用到带参方法,有时候用无参方法也可以解决的,带参方法哪里能优于无参方法 解决方案 比如编写一个函数,返回sin值,那么就需要一个参数,你需要的角度. 返回两个数相加的和,那就需要两个参数. 如果计算pi的值,或者获取当前时间,就不要参数. 这个根据需要来. 解决方案二: 需要参数就要用带参数的方法:或者是有了全局变量就不用传参数直接调用:没有优劣之分.不用太在意这些细节,从整体出发去学习. 解决方案三: 使用参数可以让程序更通用, 比

java-JAVA 我想在10到1000之间打印各个数位之和为5的数字,这样写有什么错,新手求大神指点

问题描述 JAVA 我想在10到1000之间打印各个数位之和为5的数字,这样写有什么错,新手求大神指点 public class Demo1 { public static void main(String []args){ int n=10; int t=n; int sum=0; while(t<=1000) { t++; sum=sum+t%10; t=t/10; } if(sum==5) { System.out.println(""各个数位之和为5的有:"&q