C#中方法参数传递机制
2015-09-05 09:50
344 查看
一、参数的使用方法:
1、值参数(Value Parameter )
格式:方法名称(参数类型 参数名称[,参数类型 参数名称])
2、引用参数(Reference Parameter )
格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称])
3、输出参数(Out Parameter)
格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称])
二、值参数与引用参数及输出参数的区别:
2.1 值参数中实参的值不随形参值变更而变更;
形参与实参值互不影响,实参传递给形参时,堆栈中就为其分配另外一部分空间。这样,两个参数变更时而互不影响。
2.2 引用参数及输出参数中实参的值会随形参值变更而变更
(形参:在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元.只有在发生函数调用时,函数中形参才被分配内存单元.在调用结束后,形参所占的内存单元也被释放。调用时将实参的值赋绐形参);
引用参数与输出参数中,实参在堆栈中分配空间。当实参传递给形参时,会将地址传递给形参,即传送的时指针,这样形参变更时,实参也会随著变更。
三、引用参数与输出参数区别:
3.1 使用ref与out参数时,方法中参数及调用参数都需要加Ref或out关键字
3.2 使用ref参数与out参数得到的结果是一样的,区别是:ref在调用前需给调用方法中的参数赋初值。out在调用前不需给调用方法中的参数赋初值,参数在实际方法体中初始化。
1、值参数(Value Parameter )
格式:方法名称(参数类型 参数名称[,参数类型 参数名称])
2、引用参数(Reference Parameter )
格式:方法名称(ref 参数类型 参数名称[,ref 参数类型 参数名称])
3、输出参数(Out Parameter)
格式:方法名称(out 参数类型 参数名称[,out 参数类型 参数名称])
二、值参数与引用参数及输出参数的区别:
2.1 值参数中实参的值不随形参值变更而变更;
形参与实参值互不影响,实参传递给形参时,堆栈中就为其分配另外一部分空间。这样,两个参数变更时而互不影响。
2.2 引用参数及输出参数中实参的值会随形参值变更而变更
(形参:在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元.只有在发生函数调用时,函数中形参才被分配内存单元.在调用结束后,形参所占的内存单元也被释放。调用时将实参的值赋绐形参);
引用参数与输出参数中,实参在堆栈中分配空间。当实参传递给形参时,会将地址传递给形参,即传送的时指针,这样形参变更时,实参也会随著变更。
三、引用参数与输出参数区别:
3.1 使用ref与out参数时,方法中参数及调用参数都需要加Ref或out关键字
3.2 使用ref参数与out参数得到的结果是一样的,区别是:ref在调用前需给调用方法中的参数赋初值。out在调用前不需给调用方法中的参数赋初值,参数在实际方法体中初始化。
相关文章推荐
- C#的反射机制
- Clr Via C#读书笔记---CLR寄宿和应用程序域
- Clr Via C#读书笔记---程序集的加载和反射
- Clr Via C#读书笔记---垃圾回收机制
- C#之Attribute(特性)
- C#高性能大容量SOCKET并发(五):粘包、分包、解包
- c#使用itextsharp输出pdf(动态填充表单内容,显示中文)
- c#使用itextsharp输出pdf(动态填充表单内容,显示中文)
- 【转】c#引用类型与值类型的区别大盘点
- C#异步函数
- C#调试含有源代码的动态链接库遇见there is no source code available for the current location提示时的解决方案
- C#程序双击运行之后,界面不显示,但是在任务管理器有进程(一个winform找bug之旅)
- c#------ado.net
- C#异步绑定数据实现方法
- C#执行存储过程以及传参获取返回值
- C#并行编程 (Barrier,CountdownEvent,ManualResetEventSlim,SemaphoreSlim,SpinLock,SpinWait )
- C# 关键字列表
- C# 关键字列表
- C#实现在Form里面内嵌dos窗体的方法
- 简简单单C#爬虫小计