设为首页收藏本站【C#】第六章 方法之自定义方法
繁体中文

单小喏中文网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

单小喏中文网欢迎你的光临!!!
查看: 1040387|回复: 0

【C#】第六章 方法之自定义方法

[复制链接]

85

主题

89

帖子

1246

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1246

来自- 安徽合肥

扫一扫,手机访问本帖
发表于 2014-3-27 21:26:23 | 显示全部楼层 |阅读模式
在前面我们实现数组排序无论是那种算法,实现都需要编写大量的代码和测试,其实这样的过程可以简化
[C#] 纯文本查看 复制代码
  int[] arr = { 1, 3, 2, 4, 5 };
            Array.Sort(arr);//实现升序
            foreach (int item in arr)
            {
                Console.Write(item+"\t");
            }


相比而言,以上的代码可以快速的实现排序。比如Array.Sort,这个功能微软已经帮我们包装好,我们只需要按照这样的规则拿来使用就可以了。
方法(函数):就是把一段简单或复杂的功能(语句块、代码)给他包装起来,一次编写,处处使用,以简化重复代码、功能的反复(代码冗余)实现。
语法规则: 返回值 方法名(){//方法体}
[C#] 纯文本查看 复制代码
 static void Main(string[] args)
        {
            TestWrite();//调用
            TestWrite();
            TestWrite();//在同一个类库中的方法还可以反复调用
        }
        //自定义方法,包装一个输出语句
        static void TestWrite()
        {
            Console.WriteLine("Hello World!");
        }


为了让大家理解方法,假设我们现在要想实现2个数的求和,我给你任意的2个数,只关注实现的结果,可以使用带参数的方法
[C#] 纯文本查看 复制代码
 static void Main(string[] args)
        {
            int i = 1, j = 2;
            TestSum(i,j);//调用带参数的方法
            TestSum(j,i);//调用参数顺序发生改变,参数值发生改变,但是结果没有影响
            //TestSum();//注意调用时参数个数、类型都必须一致。
        }
        //自定义方法,实现求和
        static void TestSum(int i,int j)
        {
            Console.WriteLine("i="+i+" j="+j);
            Console.WriteLine("和为:"+(i+j));
        }


变量作用域:(变量作用的范围)在方法外面的变量外面的变量,外面称为全局变量,方法里面的变量我们称为局部变量。
[C#] 纯文本查看 复制代码
static void Main(string[] args)
        {
            int i = 1, j = 2;
            TestSum(i,j);
            Console.WriteLine("函数外面的变量值,i="+i+" j="+j);//方法外面的变量不受方法影响。
        }
        //自定义方法,实现求和
        static void TestSum(int i,int j)
        {
            i = j = 4;//在方法中改变变量的值
            Console.WriteLine("i="+i+" j="+j);
            Console.WriteLine("和为:"+(i+j));
        }


局部变量只能在方法调用时生效,调用之前、调用之后不生效。全局变量在所有方法之外,程序结束前都会存在。推荐大家多使用局部变量,以提升程序的性能。
[C#] 纯文本查看 复制代码
static int l = 6;//定义全局变量
        static void Main(string[] args)
        {
            Console.WriteLine("调用全局变量,在所有方法之外,l=" + l);
        }

再来看看全局变量的作用范围
[C#] 纯文本查看 复制代码
 static int l = 6;//定义全局变量
        static void Main(string[] args)
        {
            Console.WriteLine("调用全局变量,在所有方法之外,l=" + l);
            Test();
            Console.WriteLine("调用全局变量,在所有方法之外,l=" + l);//全局变量可以在任何地方使用,并且可以被随意修改
        }
        //自定义方法,实现求和
        static void Test()
        {
            l = 7;
            Console.WriteLine("改变了全局变量的值,在方法中输出,l="+l);
        }


局部变量,要想可以在其他的方法中被改变我们需要传递局变量的地址给对应方法来修改。
[C#] 纯文本查看 复制代码
static void Main(string[] args)
        {
            int i = 1;//定义局部变量
            Console.WriteLine("局部变量i改变之前的值:"+i);
            Test(i);//默认情况下传递变量i的值给调用方法Test,是局部变量不受方法Test的影响(参数传值)
            Console.WriteLine("局部变量i改变之前的值:" + i);//会发现这行输出的值没变
            Test1(ref i);//参数的传地址
            Console.WriteLine("局部变量i改变之前的值:" + i);//会发现这行输出的值发生改变
        }        //自定义方法,参数传值
        static void Test(int i)
        {
            i = 7;
            Console.WriteLine("改变了局部变量的值,在方法中输出,i="+i);
        }
        //自定义方法,参数传地址,可以改变局部变量的值
        static void Test1(ref int i)
        {
            i = 8;
            Console.WriteLine("改变了局部变量的值,在方法中输出,i=" + i);
        }


带返回值的方法。
[C#] 纯文本查看 复制代码
static void Main(string[] args)
        {
            int i = 1, j = 2;
            int result = Test(i,j);
            Console.WriteLine("求和的结果还要进行+1:"+(result+1));
        }        //定义方法,返回值
        static int Test(int i,int j)
        {
            int result = j + j;
            Console.WriteLine("求和为:" + result);
            return result;
        }

多个返回值可以使用out关键字
[C#] 纯文本查看 复制代码

 static void Main(string[] args)
        {
            int i = 1, j = 2,k=3;
            int result = Test(out k, j,i);//多个返回值,可以使用out,并且k的值传递不过去!!!
            Console.WriteLine("求和的结果还要进行+1:" + (result + 1));
            Console.WriteLine(k);//拿出另外的返回值
        }
        //定义方法,返回值,一个方法只能有一个返回值,如果需要多个返回值,可以使用out关键字
        static int Test(out int k, int j,int i)
        {
            //int result1 = k + j;//这里不能是k+j,因为k要作为返回结果返回,在使用前必须要初始化才能使用
            int result = i + j;
            Console.WriteLine("求和为:" + result);
            k = 6;
            return result;
        }

方法注释:
方法之自定义方法.jpg

方法之自定义方法.jpg
本文章来源于:学玩网



上一篇:【C#】第五章 值类型枚举与引用类型数组
下一篇:【C#】第七章 方法之系统方法

帖子地址: 



+1
1040387°C
沙发哦 ^ ^ 马上
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
发评论,即可赢取积分欧!

申请友链|意见反馈|小黑屋|手机版|Archiver|单小喏中文网 ( 皖ICP备13012632号-1 |网站地图  

GMT+8, 2016-12-8 17:53 , Processed in 0.273795 second(s), 49 queries .

Powered by danxiaonuo

© 2013-2016 danxiaonuo.

快速回复 返回顶部 返回列表