方法与属性作为类的最重要成员,这里主要说明方法的声明、方法的属性、静态方法、方法的重载。
方法的声明
修饰符 返回值数据类型 方法名称 (输入参数的名称)
{}
例如
public int A ( int a)
{
return a;
}
这个简单的方法,public 公有的,返回值的类型是int,方法的名字叫做A,需要输入一个参数a,最后返回值是a。
这里返回值是a,如果想返回多个值就可以使用ref,或out了
比如,这里在ss类中定义方法A,先把b+c的值赋给b,再把b+c的值赋给a,返回a
public class ss{
public int A(int a, int b, int c)
{
b = b + c;
a = b + c;
return a;
}
} 调用的时候
ss s = new ss();
int Q = 3;
int W = 1;
int E = 4;
int F = s.A(Q,W,E);
textBox1.Text = F.ToString();
textBox1.Text += " " +W.ToString();
输出的值为:9 1
可以看出F返回出来了,但是这里面的W的值没有变,这是因为QWE作为只是把314的值传进去了,如果想要把地址传进去,即A方法可以改变这几个参数的值,则要用到ref
例,这里把参数b前面加ref
public class ss
{
public int A(int a,ref int b, int c)
{
b = b + c;
a = b + c;
return a;
}
}
调用过程相同,只是在W前加入ref
private void button6_Click(object sender, EventArgs e)
{
ss s = new ss();
int Q = 3;
int W = 1;
int E = 4;
int F = s.A(Q,ref W,E);
textBox1.Text = F.ToString();
textBox1.Text += " " +W.ToString();
}
输出结果为:9 5
但是ref的前提是要对其初始化,比如这里int W = 1;如果不初始化就会出错,不过在有些情况中,初始化时没有必要的,那就要用到out
例如,这里b用了out,从方法内部来看,确实没用到b的输入值,但是要b的输出值
public class ss
{
public int A(int a, out int b, int c)
{
b = 10 + c;
a = b + c;
return a;
}
}
调用
ss s = new ss();
int Q = 3;
int W ;
int E = 4;
int F = s.A(Q,out W,E);
textBox1.Text = F.ToString();
textBox1.Text += " " +W.ToString();
输出为:18 14
如果不能预先确定参数的数量,可以使用params
比如
public void food (params string[] a)
{
//方法
}
调用时,xx.food("鸡肉",“牛肉”),因为之前定义的参数个数不确定,所以这里可以是多个。