C#学习笔记------参数
一、形参
形参是本地变量,它声明在方法的参数列表中,而不是方法体中。
二、实参
当代码调用一个方法时,形参的值必须在方法的代码开始执行之前被初始化。
1.用于初始化形参的表达式或变量称作实参。
2.实参位于方法调用的参数列表中。
3.每一个实参必须与对应形参的类型相匹配,或是编译器必须能够把实参隐士转换为那个类型。
当方法被调用的时候,每个实参的值都被用于初始化相应的形参,方法体随后被执行。
三、值参数
使用值参数,通过将实参的值复制到形参的方式把数据传递给方法。方法被调用时,系统做如下操作。
1.在栈中为形参分配空间。
2.将实参的值复制给形参。
值参数的实参不一定是变量。它可以是任何能计算成相应数据类型的表达式。
在把变量用作实参之前,变量必须被赋值(除非是输出参数)。对于引用类型,变量可以被设置为一个实际的引用或null。
下图说明了实参和形参在方法执行的不同阶段时的值,它表明以下3点。
1.在方法被调用前,用作实参的变量a2已经在栈里了。
2.在方法开始时,系统在栈中为形参分配空间,并从实参复制值。
1)因为a1是引用类型的,所以引用被复制,结果参数和形参都引用堆中的同一个对象。
2)因为a2是值类型的,所以值被复制,产生了一个独立的数据项。
3.在方法的结尾,f2和对象f1的字段都被加上了5。
1)方法执行后,形参从栈中弹出。
2)a2,值类型,它的值不受方法行为的影响。
3)a1,引用类型,但它的值被方法的行为改变了。

C#学习笔记------参数的更多相关文章
- LR学习笔记---参数设置 (转 温故而知新)
LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询.提交等等),那么你必须用参数值取代录制 ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- python学习笔记-参数带*
#!/usr/bin/python # -*- coding: utf-8 -*- def powersum (power,*args): #所有多余的参数都会作为一个元组存储在args中 s ...
- PHP学习笔记<参数的传递>
简单的例子说明参数在PHP文件之间的传递(有两个PHP文件在index.php文件上点击链接,在跳转的时候,依据参数的不同在neirong.php文件中显示不同的内容) inde.php的内容如下: ...
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- MVC缓存OutPutCache学习笔记 (一) 参数配置
OutPutCache 参数详解 Duration : 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location : 缓存放置的位置; 该 ...
- Dynamic CRM 2013学习笔记(一)插件输入实体参数解析
1. 问题描述 最近新建了一个post事件的插件,传入的参数处理如下: 1: if (context.InputParameters.Contains("Target") &a ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- Noah的学习笔记之Python篇:函数“可变长参数”
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
随机推荐
- B. Heaters ( Codeforces Round #515 (Div. 3) )
题解:对于每个点 i 来说,从 j = i + r - 1 开始往前找,如果找到一个 a [ j ] 是 1 ,那么就把它选上,但是我们需要判断交界处,也就是如果前面选的那个可以让这个点变温暖,就不用 ...
- win10如何删除自己设置过的头像
把 %appdata%\Microsoft\Windows\AccountPictures 输入到地址栏 然后删除你想删除的照片即可
- Java_jdbc 基础笔记之八 数据库连接(写一个查询Student对象的方法)
public Student getStudent(String sql, Object... args) { // 查询Student对象 Student stu = null; Connectio ...
- Android adb命令打印activity堆栈
ubuntu系统: adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p' window ...
- JDBC Request :Cannot load JDBC driver class 'com.mysql.jdbc.Driver'解决办法
在Jmeter中run JDBC Request时,收到了Cannot load JDBC driver class 'com.mysql.jdbc.Driver',在网上搜了一些办法,结合自己的实际 ...
- cordova添加plugin的多种方式
#在线安装 cordova create chankoujie com.example.chankoujie ChanKouJie cordova plugin add cordova-plugin- ...
- dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法2
在混淆的时候报错了,错误描述大致如下: Could not find a compatible version of ildasm to run on assembly C:\xxx.dll This ...
- matlab学习笔记6--性能剖析
一起来学matlab-matlab学习笔记6 性能剖析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张老师的书籍, ...
- Python - Django - jQuery 实现简单的 AJAX
AJAX 局部刷新实例: 使用 jQuery 实现基本的发送 AJAX 请求 index.html: <!DOCTYPE html> <html lang="en" ...
- C++运行出现"what(): std::bad_alloc"的解决办法
注:这里只是我的代码出现这种情况及对应的解决办法,你的代码不一定出现和我一样的情况.左移这篇随笔仅供参考. 运行程序出现如下结果: terminate called after throwing an ...