c#函数.docx

上传人:b****4 文档编号:24918010 上传时间:2023-06-02 格式:DOCX 页数:9 大小:16.37KB
下载 相关 举报
c#函数.docx_第1页
第1页 / 共9页
c#函数.docx_第2页
第2页 / 共9页
c#函数.docx_第3页
第3页 / 共9页
c#函数.docx_第4页
第4页 / 共9页
c#函数.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

c#函数.docx

《c#函数.docx》由会员分享,可在线阅读,更多相关《c#函数.docx(9页珍藏版)》请在冰豆网上搜索。

c#函数.docx

c#函数

函数可复用,程序可读性好,容易实现代码的修改

这些天看C#,感觉在C#中函数的使用比在VB中使用的更为广泛,相比于VB得到了很大的扩展。

首先,函数既可以无返回值,又可以有返回值

定义一个无返回值的函数

[html] viewplaincopyprint?

1.Static  void Write()  

2.  

3.{  

4.  

5.    Console.WriteLine("Text output from function");  

6.  

7.}  

 

再定义一个有返回值的函数

[csharp] viewplaincopyprint?

1.Static  ()  

2.  

3.{  

4.  

5.    …….  

6.  

7.    Return  

8.  

9.}  

ReturnVaule的数据类型要和returnType的数据类型相同,或是可以进行隐式转换。

有无返回值的函数的不同在于无返回值函数要用关键字Void,有返回值函数则在此处定义数据类型;有返回值函数执行到Return时,程序就会返回调用代码

 

带参数的函数

[csharp] viewplaincopyprint?

1.Static double Product(double param1,double param2)  

2.  

3.{  

4.  

5.    Return param1*param2;  

6.  

7.}  

带参数函数要注意参数类型的匹配,并且在参数中也可以指定数组参数,例如

[csharp] viewplaincopyprint?

1.Static int SumVals(params int[] vals)  

2.  

3.{  

4.  

5.    Int sum= 0;  

6.  

7.    Foreach (int val in vals)  

8.  

9.    {  

10.  

11.        Sum+=val;  

12.  

13.    }  

14.  

15.    Return sum;  

16.  

17.}  

18.  

19.C#函数也像VB中,分为引用参数和值参数,引用参数就像VB中的传地址,值参数就是VB中的传值。

  

使用引用参数需要用ref指定,值参数不需特殊说明。

C#中可以用out参数指定输出参数,在函数执行完毕后,该参数的值将返回给函数调用中使用的变量

 

也上是函数的基本用法,还有很多扩展的用法

结构函数,可以简化程序的代码(这是我目前知道的结构函数的作用)

例如:

定义一个结构函数

[csharp] viewplaincopyprint?

1.Struct CustomerName  

2.  

3.{  

4.  

5.    Public string firstName, lastName;  

6.  

7.}  

要在控制台输出一个完整的名字,可以用下面这段代码

 

[csharp] viewplaincopyprint?

1.CustomerName myCustomer;  

2.  

3.myCustomer.firstName="john";  

4.  

5.myCustomer.lastName="Franklin";  

6.  

7.Console.WriteLine("{0} {1}",myCustomer.firstName,myCustomer.lastName);  

我们可以在结构函数中加入函数简化上述代码

 

[csharp] viewplaincopyprint?

1.Struct CustomerName  

2.  

3.{  

4.  

5.    Public string firstName, lastName;  

6.   

7.  

8.    Public string Name()  

9.  

10.    {  

11.  

12.        Return firstName+"" +lastName;  

13.  

14.    }  

15.  

16.}  

 

 

函数的重载

前面介绍的函数参数要注意类型的匹配,当需要处理不同类型的变量时,就可以使用函数的重载。

这相当于提供同一函数的不同版本,供不同类型的变量使用

举个简单的例子

定义这样一个函数

[csharp] viewplaincopyprint?

1.Static int Multiply(int param1,int param2)  

2.  

3.{  

4.  

5.    Int vaule= param1*param2;  

6.  

7.    Return vaule;  

8.  

9.}  

这个函数不能用于计算double类型的变量

我们可以在代码中添加如下函数

[csharp] viewplaincopyprint?

1.Static double multiply(double parma1,double param2)  

2.  

3.{  

4.  

5.    double vaule=param1*param2;  

6.  

7.    Return vaule;  

8.  

9.}  

重载函数不需要显示的指定使用哪个函数,只需提供一组参数,就可以根据参数类型执行对应的函数

 

委托

委托是一种可以把引用存储为函数的类型。

我的理解是委托可以将好几个函数集合在一起,使用的时候可以根据需要选择委托中的函数。

我们可以这样定义一段代码

[csharp] viewplaincopyprint?

1.delegate double ProcessDelegate(double param1, double param2);  

2.  

3.       static double Multiply(double param1, double param2)  

4.  

5.       {  

6.  

7.           return param1 * param2;  

8.  

9.       }  

10.  

11.  

12.  

13.       static double Divide(double param1, double param2)  

14.  

15.       {  

16.  

17.           return param1 * param2;  

18.  

19.       }  

以上是定义的一个委托,下面是对这个委托的使用

   

[csharp] viewplaincopyprint?

1.static void Main(string[] args)  

2.  

3.   {  

4.  

5.       ProcessDelegate process;      //定义委托变量  

6.  

7.       Console.WriteLine("Enter 2 Number seperated with comma:

");  

8.  

9.       string input = Console.ReadLine();  

10.  

11.       int commaPos=input.IndexOf(',');  

12.  

13.       double param1 = Convert.ToDouble(input.Substring(0, commaPos));  

14.  

15.       double param2 = Convert.ToDouble(input.Substring(commaPos + 1, input.Length - commaPos - 1));        //获得用户输入,并将输入分别赋给两个变量  

16.  

17.       Console.WriteLine("Enter M to Multiply or D to Divide");  

18.  

19.       input = Console.ReadLine();  

20.  

21.       if (input == "M")  

22.  

23.           process = new ProcessDelegate(Multiply);  

24.  

25.       else   

26.  

27.           process = new ProcessDelegate(Divide);  

28.  

29.       Console.WriteLine("Result:

{0}",process(param1,param2));  

30.  

31.       Console.ReadKey();  

C#中函数使用的更为广泛,后面还要学函数的形式构造,以及如何把他如何应用于类

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1