( ! ) Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in D:\www\up\CSharp\class03.php on line 20 | ||||
---|---|---|---|---|
Call Stack | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 361624 | {main}( ) | ...\class03.php:0 |
( ! ) Warning: include(http://pub.houheaven.com/Nav02/Nav_deep2.htm): failed to open stream: no suitable wrapper could be found in D:\www\up\CSharp\class03.php on line 20 | ||||
---|---|---|---|---|
Call Stack | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 361624 | {main}( ) | ...\class03.php:0 |
( ! ) Warning: include(): Failed opening 'http://pub.houheaven.com/Nav02/Nav_deep2.htm' for inclusion (include_path='.;C:\php\pear') in D:\www\up\CSharp\class03.php on line 20 | ||||
---|---|---|---|---|
Call Stack | ||||
# | Time | Memory | Function | Location |
1 | 0.0000 | 361624 | {main}( ) | ...\class03.php:0 |
格式:访问修饰符 返回类型 方法名([参数类型 参数名][……]){ …… }
说明:方法的返回类型用于指定方法计算和返回的值的数据类型,可以是任何类型,也可以是引用类型。如果方法不返回值,就需要将返回类型写成void。
[ 源代码 ]
class Example
{
public int add(int a,int b)
{
ruturn a+b;
}
}
……
Example obj=new Example();
Consloe.WriteLine(obj.add(1,2));
在类的内部,格式为:方法名(参数列表);
在类的外部,格式为:对象名.方法名(参数列表);
当调用方法,将实参传递给形参时,实际上是把实参的值复制给了形参。内存中,实参和形参各自的存储空间中都存有相同的值,所以在方法内,对形参进行运算,改变了形参的值后,实参内的数据是不受影响的。
[ 源代码 ]
class Example
{
public int Switch(int x,int y)
{
Console.WriteLine("x={0},y={1}", x, y);
int z;
z=x;
x=y;
y=z;
Console.WriteLine("x={0},y={1}", x, y);
}
}
……
Example obj=new Example();
int a=2,b=5;
Consloe.WriteLine("a={0},b={1}", a, b);
obj.Switch(a,b);
Consloe.WriteLine("a={0},b={1}", a, b);
[ 输出结果 ]
a=2 , b=5
x=2 , y=5
x=5 , y=2
a=2 , b=5
由于方法只能返回一个值,如果需要方法的运行能够改变几个值,可以使用按引用传递参数的方式。
在按引用传递参数的方式下,当调用方法,将实参传递给形参时,不是值传递,而是将实参的引用(内存地址)传递给形参,这样以来,对形参一切操作实际上是对实参的操作,这样实参的值也会跟着改变。
按引用传递分为两类,基本数据类型和类数据类型。
基本数据类型的参数,在形参和实参前使用ref关键字。
[ 源代码 ]
class Example
{
public int Switch(ref int x,ref int y)
{
Console.WriteLine("x={0},y={1}", x, y);
int z;
z=x;
x=y;
y=z;
Console.WriteLine("x={0},y={1}", x, y);
}
}
……
Example obj=new Example();
int a=2,b=5;
Consloe.WriteLine("a={0},b={1}", a, b);
obj.Switch(ref a,ref b);
Consloe.WriteLine("a={0},b={1}", a, b);
[ 输出结果 ]
a=2 , b=5
x=2 , y=5
x=5 , y=2
a=5 , b=2
类数据类型的参数(自定义类生产的对象、系统类String类、系统控件等)及数组类型的参数,默认都是按引用传递的,不需要在参数前添加ref。
[ 源代码 ]
class Example
{
public int Switch(TextBox x,TextBox y)
{
TextBox z=new TextBox();
z.Text=x.Text;
x.Text=y.Text;
y.Text=z.Text;
}
}
……
Example obj=new Example();
obj.Switch(textBox1,textBox2);
说明:方法的重载,是指声明两个以上的同名方法,来实现对不同类型数据的相同处理。
注意1:重载方法的名称一定要相同。
注意2:重载方法的形参个数或形参类型必须不同。
[ 源代码 ]
class Example
{
public int max(int x, int y)
{
return x > y ? x : y;
}
public int max(int x, int y, int z)
{
int t = x > y ? x : y;
return t > z ? t : z;
}
}
……
Example ex=new Example();
Console.WriteLine(ex.max(6,3));
Console.WriteLine(ex.max(5,2,9));
[ 后天堂 | 这里,只泊同流人 ]