黑马程序员技术交流社区

标题: 方法、返回值、参数问题 [打印本页]

作者: 梦里不知身是客    时间: 2014-7-25 23:08
标题: 方法、返回值、参数问题
本帖最后由 梦里不知身是客 于 2014-7-27 11:51 编辑

方法、参数、返回值是C#中几个基本的概念,可是又非常容易搞混,那他们之间的区别是什么,又有什么联系呢。。。。。求大神解惑。。。
作者: 流失的温度0    时间: 2014-7-25 23:53
方法,简单点理解吧,就是为了解决一个问题所编写的代码块。
然后给这个方法起个名字,但是需要按照声明方法的格式来。
参数,理解起来也不难,比如你写了一个计算两个数和的方法,
在使用这个方法时,肯定需要给出两个数,你才能计算出和
现在需要的两个数就是参数
至于返回值,还那计算和来说吧,你现在不想在你的方法里直接输出计算结果
你的需求只是通过写出的方法得到结果,而不是输出到屏幕
你就需要返回值。
当然,上面只是为了便于理解举的例子,
这里面的学问还是不少的,简单的马上就理解,以后慢慢深入理解。
写个例子:
public static int Add(int a,int b)
{
   return a+b;
}

简单说一下吧。
声明方法的语法
[访问修饰符] [static] 返回值类型 方法名(参数列表)
{
   //方法体
}
具体实例
public static int Add(int a,int b)
{
      int c=a+b;//a和b是参数,已经声明,直接拿来用
      return c;//将计算结果返回。
      //上面两个也可以直接写 return a+b;即直接返回a+b的值。
}
访问修饰符可以缺省,如果有static修饰,则表名方法为静态方法。
返回值类型的话,还以上面加法的例子来说,两个int类型的数字相加,
最后想得到一个int类型的结果,那这里的返回值类型就写int,想要得到double类型的就写double,没有返回值就写void
方法名是自己起的,但是不能是关键字什么的,最好是有意义的名字,让人一看就知道这段代码是干嘛的
参数列表,还拿那个例子,需要两个int类型的数字,所以参数列表就写int a,int b,参数列表间用英文的逗号分割
然后里面就是方法体了。
返回值的话,如果你的方法没有返回值,比如说计算好结果后直接输出,则直接输出,需要返回值的话,也就是返回值类型写的不是void
那么在你的方法体的最后位置,一般是最后,但不是绝对,写return c,表示将计算结果返回。
此时你就可以在需要的地方接收结果,比如int i1=11;int i2=12;int sum=Add(i1,i2);这样你就可以用sum接收得到的计算结果。
如果没有返回值,也就是返回值类型为void的话,那就不能这么用,会报错,因为没有返回值。

以上纯为自己个人临时总结,不妥之处还望指出,共同探讨,共同进步。

作者: 天佑の清清    时间: 2014-7-26 10:43
返回值是函数执行完毕后的return后的值,一个方法只能有一个return值,在return语句后执行的代码永远不会执行。输出参数,与一般参数使用相差不大,使用方法的声明,将参数前加上ref或者out关键字,那么这个参数传入方法后,在方法返回时,该参数的值可以在方法内进行修改,并且会把修改后的值传回调用者。一般参数不会把参数修改后的值传回调用者
作者: 梦里不知身是客    时间: 2014-7-26 11:54
流失的温度0 发表于 2014-7-25 23:53
方法,简单点理解吧,就是为了解决一个问题所编写的代码块。
然后给这个方法起个名字,但是需要按照声明方 ...

太详细了,受教了。。。谢谢大神。。。
作者: 梦里不知身是客    时间: 2014-7-26 11:56
天佑の清清 发表于 2014-7-26 10:43
返回值是函数执行完毕后的return后的值,一个方法只能有一个return值,在return语句后执行的代码永远不会执 ...

嗯,记下了,谢谢大神。。。
作者: Kevion小远    时间: 2014-7-27 00:00
返回值:就是方法需要向调用传递的信息,你不需要方法传递出信息时就用void,需要方法向你传递什么那就是返回值
参数值:就是方法被调用时需要传递给方法的信息,你不给方法传递信息他也能完成任务就不用加参数,如果你不传递信息给方法就没法计算,就得必须加那个参数。
作者: rende1991    时间: 2014-7-27 08:04
方法就是要做一件什么样的事情,参数就是做这件事情的工具,返回值就是做完这件事情所带来的结果是什么,这是我的理解,希望对你有所帮助。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2