C#——类的成员(方法)
方法
1.方法的声明
C#中的方法必须放在类定义中声明,也就是说,方法必须是某一个类的方法。声明方法的一般形式如下:
[访问修饰符]返回值类型 方法名([参数列表])
{
语句;
···
[return 返回值;]
}
在声明方法时要注意以下几点。
(1)访问修饰符控制方法级别,可用于方法的修饰符包括public、protected、private等;访问修饰符是可选的,默认情况下为private。
(2)方法的返回类型用于指定由该方法返回值的类型,可以是任何合法的数据类型,包括值类型和引用类型,如果不需要返回一个值,则使用void关键字来表示。
(3)方法名必须符合C#的命名规范,与变量名的命名规则相同。
(4)参数列表是方法可以接受的由外部传入的数据,若不需要参数,则可省略,但不能省略圆括号。当参数不止一个时,需要使用逗号分隔,同时每一个参数都必须声明数据类型,即使它们的数据类型相同也不例外。
(5)花括号中的内容为方法的主体,由若干条语句组成,每一条语句都必须使用分号结尾。当方法结束时如果需要返回计算结果,则使用return语句返回,要保证方法的返回类型要与返回值的类型相匹配。如果使用void标记方法为无返回值的方法,可省略return语句。
例如:
public int Sum(int a,int b)
{
int c = a + b;
return c;
}
在该方法的第一行中,public表示访问修饰符,int为方法返回类型,Sum为方法的名称,其后有两个整型参数a和b。第3、4行为方法的主体,每条语句由分号结尾,第4行的return语句返回计算结果。
- 方法的调用
只要一个方法在某个类中声明,就可以被其它方法调用,调用者既可以是同一个类中的方法,也可以是其他类中的方法。如果调用方是同一个类中的方法,则可以直接调用,如果调用方是其他类中的方法,则需要通过类的实例来引用,但静态方法除外,静态方法可以通过类名直接调用。
(1)在同一个类中调用方法。其语法格式为:
例如:
class Calculator{
public int Sum(int a, int b){
return a+b;
}
public string Display(int x,int y){
return string.Format("{0} + {1} = {2}",x,y, Sum(x,y));
}
}
因为Display方法和Sum方法同在一个类中,所以Display方法可以直接调用Sum方法。
(2)在类的外部调用方法
当调用方B与被调用方A不在同一个类中时,如果要从类的外部调用A时,必须通过类的实例,即对象来调用该方法A。其语法格式为:
对象名.方法名(参数列表)
例如:
class Calculator{
public int Sum(int a, int b){//被调方
return a + b;
}
}
class User{
public string Display(int x, int y)//调用方
{
Caculator x = new Calculator();//创建类的实例,即对象x
return string.Format("{0} + {1} = {2}",x,y, x.Sum(x,y));//通过x调用Sum(x,y)
}
}
因为Dispaly方法和Sum方法不在一个类中,需要先创建类的实例(即对象x),然后通过x调用Sum(x,y)。
类的方法被调用时,有以下几种使用形式。
- 作为一条独立的语句使用,如:
Calculator a = new Calculator();
a.Sum(5,6);
a.Sum(5,6)是一条独立的方法调用语句。 - 作为表达式的一部分,参与算数运算、赋值运算等,如:
Calculator a = new Calculator();
int y = 4 * a.Sum(5,6);
a.Sum(5,6)首先参与赋值运算,其实质是先把对象a的Sum方法返回的值11作为操作数参与乘法运算,最后y的运算结果是44。 - 作为另一个方法的参数来使用,如:
Calculator a = new Calculator();
int y = a.Sum( a.Sum(5,6),8);
其中,Sum(5,6)就作参数使用,其实质是先用Sum(5,6)方法的返回值11作第1个参数,同时把8作第2个参数,再次传入sum方法进行第二次计算,因此y的运算结果是19。