Fork me on GitHub

类的方法

方法的声明
声明格式如下: 方法修饰符 返回类型 方法名(形参列表){方法体}
方法修饰符包括:
new public protected internal private static virtual sealed override abstract extern
方法中参数的传递
c#语言采用下面四种方法传递参数:
1.值参数,不加任何修饰符(被调用的方法不会修改实参的值)
2.引用参数传递,以ref修饰符声明(注意在使用前,实参变量要求必须有初始值)
3.输出参数,以out修饰符声明(与引用参数的差别在于调用方法前无需对变量进行初始化)
4.数组参数,以params修饰符声明(a.加params 数组参数只允许是一维数组 b.不加params,可以使用一维或者多维数组)
example code:
class Program
{
public static void f(ref char i)//引用参数
{
i = 'x';
}
public static void f0(ref string s)//引用参数,形参类型为字符串
{
s = "666";
}
public static void f1(char i)//值参数,形参类型为值类型
{
i = 'u';
}
public static void f2(g gg)//值参数,形参类型为引用类型
{
gg.a = 20;
}
public static void f3(string s)//值参数,形参类型为字符串
{
s = "wocao";
}

public static void f4(out char i)//输出参数
{
i = 'g';
}

static void Main(string[] args)
{
char a = '8';
string s1 = "9999";
f1(a);
Console.WriteLine(a);//显示8
f(ref a);
Console.WriteLine(a);//显示x
f3(s1);
Console.WriteLine(s1);//显示9999,字符串不被修改
f0(ref s1);
Console.WriteLine(s1);//显示666
g g1 = new g();
f2(g1);
Console.WriteLine(g1.a.ToString());//显示20
char j;
f4(out j);
Console.WriteLine(j);//显示g

 

Console.ReadKey();
}
}

///////////////////////////////////////
a.加params 数组参数只允许是一维数组:
class Program
{
//数组参数 以parames修饰符声明
static void f(params int[] args)
{
Console.WriteLine("数组包含{0}个元素:",args.Length);
foreach (int i in args)
{
Console.WriteLine("{0}",i);
}
}
static void Main(string[] args)
{
int[] a= { 1,2,3,4};
f(a);//实参为数组类引用变量a

f(10,11,12,13);//等价于f(new int[] {10,11,12,13});
f(new int[] { 20,30,40,50});//实参为数组类引用
f();//等价于f(new int[]{});
f(new int[] { });//实参为数组类引用,数组无元素
Console.ReadKey();
}
}

//////////////////////////
b.不加params,可以使用一维或者多维数组
static void f(int[,] args)
{
Console.WriteLine("数组包含{0}个元素:",args.Length);
foreach (int i in args)
{
Console.WriteLine("{0}",i);
}
}
static void Main(string[] args)
{
int[,] a= { { 1, 2, 3, 4 } ,{ 5,6,7,8} };
f(a);//实参为数组类引用变量a
//下面这三种格式不能使用
//f(10,11,12,13);//等价于f(new int[] {10,11,12,13});
//f(new int[] { 20,30,40,50});//实参为数组类引用
//f();//等价于f(new int[]{});
f(new int[,] { });//实参为数组类引用,数组无元素
Console.ReadKey();
}

//**********************************************//

如有错误之处还望大佬指出!!!!!!!!

posted @ 2022-02-08 14:45  -悟空  阅读(24)  评论(0)    收藏  举报