码农小白 方法(函数)Ⅱ 参数 C#篇

本文深入解析了C#中方法参数的各种类型,包括值参数、引用参数(ref)、输出参数(out),并提供了详细的语法使用总结,帮助读者理解参数如何在方法调用中传递和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法(函数)Ⅱ<参数>

1、参数

参数可用来返回多个值,并且传入数据给方法使用

1、形参

形参是本地变量,它声明在参数列表中,而不是在方法体中。

public void PrintString(string str)    //stu为string类型的形参
{
	Console.WriteLine(str);
}

[可选]访问修饰符 + 返回类型 + 函数名(参数类型 + 参数名){ 表达式; }

2、实参

实参是方法调用时的调用时传入的数据

class Porgram
{
	static public void PrintString(string str)
	{
		Console.WriteLine(str);
	}
	
	static void Main()
	{
		PrintString("今天是2020年1月4日!");    //调用PrintString方法,并传入"今天是2020年1月4日!"
		string str1 = "现在时间是20:15!";    //定义str1变量
		PrintString(str1);    //调用PrintString方法,并传入str1变量
	}
}

输出结果

今天是202014日!
现在时间是15:03

2、值参数

值参数是将实参的值复制给形参

float Add(float var1, float var2)    //方法声明
{
	float var3 = var2 + var1;
	return var3;
}
void Avg()
{
	Add(2.4, 5.67);    //方法调用
	float a = 5.55;
	Add(a, 8.88);    //方法调用
}

3、引用参数(ref)

引用参数使用时必须使用ref 修饰符, 实参必须是变量 ,且用作实参前必须被赋值
引用参数使用时是将实参的内存地址传给形参 ,所以方法执行后实参的值也会被方法改变

class Myclass
{
	public int year = 18;    //初始化字段为18
}

class Porgram
{
	//声明PrintYear函数,并把它的两个形参声明为引用参数
	static void PrintYear(ref Myclass myclass, ref int year1)
	{
		myclass.year = myclass.year + 1;
		year1 = year1 + 1;
		Console.WriteLine("myclass.year:{0} , year1:{1}", myclass.year, year1);
	}
	static void Main()
	{
		int a = 20;
		Mycalss mc = new Myclass();
		Console.WriteLine("mc.year:{0} , year1:{1}", mc.year, a);    //输出初始值
		PrintYear(ref mc, ref a);    //调用PrintYear函数
		Console.WriteLine("mc.year:{0} , year1:{1}", mc.year, a);    //再次输出
	}
}

输出结果

mc.year:18 , year1:20
myclass.year:19 , year1:21
mc.year:19 , year1:21    //变量值被改变

4、输出参数(out)

引用参数使用时必须使用out 修饰符, 实参必须是变量
与引用不同,输出参数用作实参前可不被赋值
同样输出参数也是传变量地址给形参

void MyFunction(out int var1)
{ ... }

...
int a;
MyFunction(out a);

5、参数类型总结

因为上述三种参数类型有时很难记住它们的不同特征,所以下表给它们总结,便于我们对照和比较。

参数类型语法使用总结

参数类型修饰符是否在声明时使用是否在调用时使用执行
系统把实参的值复制但形参
引用ref形参是实参的别名
输出out仅包含一个返回值。形参是实参的别名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值