收藏 分销(赏)

C# 函数 值参数和引用参数.ppt

上传人:pc****0 文档编号:12555812 上传时间:2025-10-30 格式:PPT 页数:16 大小:80.50KB 下载积分:10 金币
下载 相关 举报
C# 函数 值参数和引用参数.ppt_第1页
第1页 / 共16页
C# 函数 值参数和引用参数.ppt_第2页
第2页 / 共16页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Visual C#2005,程序设计与应用简明教程,第,5,章 函数,第,5,章 函 数,学习目标:,掌握如何定义和使用函数;,掌握函数之间传送数据的方式;,理解变量的作用域;,5.1,定义和使用函数,5.1.1,定义函数,class Program,static,void,write(),(无返回值),Console.WriteLine(“Test,output from function”);,static void,Main(string,args,),write();,Console.ReadKey,();,5.1.2,返回值(有返回值),当函数返回的是一个值的时候,用以下两种方式 修改函数:,在函数声明中指定返回值的类型,但不使用关键字,void,;,使用,return,关键字结束函数的执行,把返回值传送给调用代码;,static (),return ,必须是一个值,而且必须是,,而,可以是任何类型,包括复杂类型。,class Program,static double write(),return 1.2;,Console.WriteLine(Test output from function);,static void Main(string args),double m=write();,Console.WriteLine,(m,);,Console.ReadKey();,执行到,return,语句时,表示从被调函数返回到主调函数继续执行,这个语句后面的代码不会执行,。,所有的处理路径都必须执行到,return,语句。,否则提示错误“并不是所有的处理路径都返回一个值”。,static double,getval,(),double,checkval,;,if(,checkval,5),return 4.7;,5.1.3,参数,在函数接受参数时,必须指定以下内容:,函数在定义中制定接受的,参数列表,,以及,参数类型;,在每个函数调用中,匹配的,参数列表,要求,类型、个数、顺序,匹配。,static void,myfunction,(string,mystring,double,mydouble,),调用时:,myfunction(2.6,”hello”);,myfunction(“hello,”);,namespace ConsoleApplication3,class Program,static int maxvalue(int intarray),int maxval=intarray0;,for(int i=1;i maxval),maxval=intarrayi;,return maxval;,static void Main(string args),int myarray=1,8,3,6,2,3,9,3,11,2;,int maxval=maxvalue(myarray);,Console.WriteLine(the maximum value in myarray is 0,maxval);,Console.ReadKey();,5.2.1,值参数:,把一个值传递给函数使用,函数中此变量的任何修改都不影响函数调用中制定的参数。,class Program,static void showdouble(int val),val*=2;,Console.WriteLine(val doubled=0,val);,static void Main(string args),int mynumber=5;,Console.WriteLine(mynumber=0,mynumber);,showdouble(mynumber);,Console.WriteLine(mynumber=0,mynumber);,Console.ReadKey();,程序输出:,mynumber,=5;,mynumber,=10;,mynumber,=5;,5.2,引用参数和值参数,class Program,static,int,showdouble(int val),val*=2;,return val;,static void Main(string args),int mynumber=5;,Console.WriteLine(mynumber=0,mynumber);,mynumber=,showdouble(mynumber);,/,Console.WriteLine,(showdouble(mynumber);,Console.WriteLine(mynumber=0,mynumber);,Console.ReadKey();,程序输出:,mynumber,=5;,mynumber,=10;,/,mynumber,=5;,10;,mynumber,=5;,5.2.2,引用参数,:,函数处理的变量与函数调用中的使用的变量相同,而不仅仅是值相同的变量。因此对该变量进行的任何修改都回影响到用作参数的变量值,只需要用,ref,关键字指定其为引用参数。,ref,变量必须,初始化,过,而且,不能为常量,。,class Program,static void showdouble(,ref,int val),val*=2;,Console.WriteLine(val doubled=0,val);,static void Main(string args),int mynumber,=5,;,/,const,int,mynumber,=5;,Console.WriteLine(mynumber=0,mynumber);,showdouble(,ref,mynumber);,Console.WriteLine(mynumber=0,mynumber);,Console.ReadKey();,程序输出:,mynumber,=5;,mynumber,=10;,mynumber,=10;,5.3,变量的作用域,class Program,static void write(),Console.WriteLine(mystring=0,mystring);,static void Main(string args),string mystring=,该字符串定义在,Main(),方法中,;,write();,Console.ReadKey();,出错原因:,应用程序主体,Main(),中定义的变量,mystring,不能在,write(),函数中访问。,因为变量有一个作用域,只有在这个作用域中,变量才是有效的。,作用域包括定义变量的代码块和直接嵌套在其中的代码块,而函数中的代码块和调用它们的代码块是不同的。,class Program,static,string mystring;,static void write(),string mystring=write(),方法中的,mystring,变量,;,Console.WriteLine(,局部变量,mystring=0,mystring);,Console.WriteLine(,全局变量,mystring=0,Program.mystring);,static void Main(string args),string mystring=Main(),方法中的,mystring,变量,;,Program.mystring=,全局变量,;,write();,Console.WriteLine(,局部变量,mystring=0,mystring);,Console.WriteLine(,全局变量,mystring=0,Program.mystring);,Console.ReadKey();,若,局部变量和全局变量同名,全局变量就会被屏蔽。,其它结构中变量的作用域,int,i;,for(i,=0;i5;i+),string,linenumber,=,Convert.ToString(i,);,Console.WriteLine(“0”,linenumber);,Console.WriteLine,(“,最后一行是:,0”,linenumber);,int,i;,string,linenumber,;,for(i,=0;i5;i+),string,linenumber,=,Convert.ToString(i,);,Console.WriteLine(“0”,linenumber);,Console.WriteLine,(“,最后一行是:,0”,linenumber);,int,i;,string,linenumber,=0;,for(i,=0;i5;i+),string,linenumber,=,Convert.ToString(i,);,Console.WriteLine(“0”,linenumber);,Console.WriteLine,(“,最后一行是:,0”,linenumber);,变量在使用之前必须,进行初始化,,变量,linenumber,是在,for,循环内初始化的,退出循环时,赋给变量,linenumber,的值也随之消失,此时在循环外使用,linenumber,就是非法的。只有在循环外部对变量,linenumber,进行初始化,才能在循环外部使用,linenumber,时可以访问在循环内赋给它的值。,“最佳实践”原则:,在声明和初始化所有变量后,再在程序中使用它们。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服