方法
1、方法(函数)的简介
函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会有返回值。一个函数就像是专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给他,他执行完成后可能会有一些执行结果给我们。要求的数据叫做参数,返回的执行结果就是返回值。
注:面向对象的特征封装、继承、多态。
语法:
public static 返回值类型 方法名([参数列表])
{
方法体;
}
public:访问修饰符,公共的公开的,哪里都可以访问。
static:静态的
返回值类型:int string… 无返回值写 void(无返回值)
方法名起名:符合Pascal命名规则,首字母大写,其余字母小写
参数列表:完成这个方法所必须提供给这个方法的条件,即使没有参数列表小括号[]也不能省略
方法不能写在main()函数中
方法必须在main()中调用
类名.方法名([参数])
某些情况下类型类名可以省略:
1.当方法在main()在一个类名时可以不写
return的作用
1.在方法中返回要返回的值
2.立即结束本次方法
方法的调用问题
1、我们在mian()函数中,调用Test()函数,我们管Main()函数称之为调用者,管Test()函数称之为被调用者。
1.1如果被调用者想要得到调用者的值:
1.1.1传递参数
1.1.2使用静态字段来模拟全局变量
1.2如果调用者想要得到被调用者的值
1.2.1返回值
2、不管是形参还是实参都在内存中开辟空间
3、方法功能一定要单一,方法中最忌讳的就是给出提示代码
高级参数out、ref、params
out:
如果你在一个方法中返回多个相同类型的值的时候,可以考虑返回一个数组。
但是,如果返回多个不同类型的值得时候,可以使用out参数。
可以在一个方法中返回不同类型的值。
语法:
public static void Test(int[] nums,out int max,out int min,out int sum,out int avg)
//本来该方法没有返回值类型 可以在参数列表后面加上out + 参数类型 + 参数名称 作为多余返回的类型
{
//out参数要求在方法中必须对参数赋值
}
在main方法中调用的时候,必须要声明out的多余参数
ref:
能够将一个变量带入一个方法中进行改变,改变完成后,再将改变后的值带出方法
ref参数要求在方法外必须为其赋值,而方法内可以不赋值
语法:
public static void Test(ref double s)
{
}
params可变参数
将实参列表中跟可变参数数组类型一致的元素都当作数组的元素去处理。
params可变参数必须是形参列表中最后一个元素。
语法:
public static void Test(string s,params int[] s1)
{
}
方法的重载(重写)
方法的重载就是指的是方法的名称相同,但是参数不同。
参数不同分为两种情况:
1、如果参数的个数相同,那么参数的类型不能相同。
2、如果参数类型相同,那么参数的个数就不能相同。
方法的重载和返回值没有关系
语法:
public static void sum(int a,int b)
{
}
public static int sum(int a,int b,int c)
{
}
public static double sum(double a,double b)
{
}
方法的递归
方法自己调用自己。
语法:
em.Text;
using System.Threading.Tasks;
namespace recursion
{
class Program
{
public static int i = 0;
static void Main(string[] args)
{
Speak();
Console.ReadKey();
}
public static void Speak()
{
i++;
if (i >= 10)
{
return;
}
Console.WriteLine("1321");
Speak();
}
}
}