1、c#函数函数可复用,程序可读性好,容易实现代码的修改这些天看C#,感觉在C#中函数的使用比在VB中使用的更为广泛,相比于VB得到了很大的扩展。首先,函数既可以无返回值,又可以有返回值定义一个无返回值的函数htmlview plaincopyprint?1. StaticvoidWrite()2. 3. 4. 5. Console.WriteLine(Textoutputfromfunction);6. 7. 再定义一个有返回值的函数csharpview plaincopyprint?1. Static()2. 3. 4. 5. .6. 7. Return8. 9. ReturnVaule 的数
2、据类型要和returnType的数据类型相同,或是可以进行隐式转换。有无返回值的函数的不同在于无返回值函数 要用关键字Void,有返回值函数则在此处定义数据类型;有返回值函数执行到Return时,程序就会返回调用代码带参数的函数csharpview plaincopyprint?1. StaticdoubleProduct(doubleparam1,doubleparam2)2. 3. 4. 5. Returnparam1*param2;6. 7. 带参数函数要注意参数类型的匹配,并且在参数中也可以指定数组参数,例如csharpview plaincopyprint?1. StaticintS
3、umVals(paramsintvals)2. 3. 4. 5. Intsum=0;6. 7. Foreach(intvalinvals)8. 9. 10. 11. Sum+=val;12. 13. 14. 15. Returnsum;16. 17. 18. 19. C#函数也像VB中,分为引用参数和值参数,引用参数就像VB中的传地址,值参数就是VB中的传值。使用引用参数需要用ref指定,值参数不需特殊说明。C#中可以用out参数指定输出参数,在函数执行完毕后,该参数的值将返回给函数调用中使用的变量也上是函数的基本用法,还有很多扩展的用法结构函数,可以简化程序的代码(这是我目前知道的结构函数的
4、作用)例如:定义一个结构函数csharpview plaincopyprint?1. StructCustomerName2. 3. 4. 5. PublicstringfirstName,lastName;6. 7. 要在控制台输出一个完整的名字,可以用下面这段代码csharpview plaincopyprint?1. CustomerNamemyCustomer;2. 3. myCustomer.firstName=john;4. 5. myCustomer.lastName=Franklin;6. 7. Console.WriteLine(01,myCustomer.firstName
5、,myCustomer.lastName);我们可以在结构函数中加入函数简化上述代码csharpview plaincopyprint?1. StructCustomerName2. 3. 4. 5. PublicstringfirstName,lastName;6. 7. 8. PublicstringName()9. 10. 11. 12. ReturnfirstName+lastName;13. 14. 15. 16. 函数的重载前面介绍的函数参数要注意类型的匹配,当需要处理不同类型的变量时,就可以使用函数的重载。这相当于提供同一函数的不同版本,供不同类型的变量使用举个简单的例子定义这样
6、一个函数csharpview plaincopyprint?1. StaticintMultiply(intparam1,intparam2)2. 3. 4. 5. Intvaule=param1*param2;6. 7. Returnvaule;8. 9. 这个函数不能用于计算double类型的变量我们可以在代码中添加如下函数csharpview plaincopyprint?1. Staticdoublemultiply(doubleparma1,doubleparam2)2. 3. 4. 5. doublevaule=param1*param2;6. 7. Returnvaule;8.
7、9. 重载函数不需要显示的指定使用哪个函数,只需提供一组参数,就可以根据参数类型执行对应的函数委托委托是一种可以把引用存储为函数的类型。我的理解是委托可以将好几个函数集合在一起,使用的时候可以根据需要选择委托中的函数。我们可以这样定义一段代码csharpview plaincopyprint?1. delegatedoubleProcessDelegate(doubleparam1,doubleparam2);2. 3. staticdoubleMultiply(doubleparam1,doubleparam2)4. 5. 6. 7. returnparam1*param2;8. 9. 10
8、. 11. 12. 13. staticdoubleDivide(doubleparam1,doubleparam2)14. 15. 16. 17. returnparam1*param2;18. 19. 以上是定义的一个委托,下面是对这个委托的使用csharpview plaincopyprint?1. staticvoidMain(stringargs)2. 3. 4. 5. ProcessDelegateprocess;/定义委托变量6. 7. Console.WriteLine(Enter2Numberseperatedwithcomma:);8. 9. stringinput=Con
9、sole.ReadLine();10. 11. intcommaPos=input.IndexOf(,);12. 13. doubleparam1=Convert.ToDouble(input.Substring(0,commaPos);14. 15. doubleparam2=Convert.ToDouble(input.Substring(commaPos+1,input.Length-commaPos-1);/获得用户输入,并将输入分别赋给两个变量16. 17. Console.WriteLine(EnterMtoMultiplyorDtoDivide);18. 19. input=Console.ReadLine();20. 21. if(input=M)22. 23. process=newProcessDelegate(Multiply);24. 25. else26. 27. process=newProcessDelegate(Divide);28. 29. Console.WriteLine(Result:0,process(param1,param2);30. 31. Console.ReadKey();C#中函数使用的更为广泛,后面还要学函数的形式构造,以及如何把他如何应用于类
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1