变量
1.本地变量
2.参数
3.字段
4.数组元素
stack存储本地变量和参数
heap存储对象/引用类型的实例
Gc垃圾收集器自动释放heap上的不被引用的实例
值类型的实例和对象的引用会存放在变量声明时所在的内存块里
引用类型的字段和数组元素存放在heap上
static字段在heap上
其他在heap上的对象当没有被引用时会逐渐的被Gc回收
而static字段会存活到应用程序停止
变量
1.本地变量
2.参数
3.字段
4.数组元素
–
本地变量在读取之前必须被赋值
当方法被调用的时候,函数的参数必须被赋值
其他的变量(字段,数组元素)在运行时会被自动初始化
所有类型的实例都有默认值
引用类型-null
值类型和枚举类型-0
char-‘\0’
bool=false
可以通过default关键字来获取任何类型的默认值
自定义值类型struct的默认值就是该自定义类型定义的每个字段的默认值
struct
形参-parameters
实参-arguments
函数传参
传值-无修饰符-传递前变量必须被明确赋值
传引用-ref-传递前变量必须被明确赋值
传输出-out-变量在方法结束的时候必须被明确赋值
默认传参方式-传值-形参是实参的一份临时拷贝
传值-值类型
传值-引用类型,不创建新对象
复制的是引用不是对象
传引用
传引用-值类型
传输出
传输出和引用区别:
out进入函数前不需要被赋值,离开函数前必须被赋值
out通常用来从方法返回多个值
string-引用类型
传输出-引用类型,不创建新对象
C#7-调用方法时,可以使用out声明临时变量
当调用的方法有多个out参数时,如果不需要其中一些out参数,可以使用_来弃用discard
ref/out都相当于传引用
传引用相当于给现有变量的存储位置起别名,而不是创建了1个新的存储位置
数组参数
方法的最后1个参数
参数类型必须为数组
可以接收任意数量的该类型的参数
两种调用方式
1.没加params
2.加了params
方法体内直接放置数组元素-(数组元素)
可选参数
可选参数需要在声明的时候提供默认值
按顺序赋值
往public方法里添加可选参数,若该方法被其他装配集调用,那么两个装配集都需要重新编译
可选参数的默认值必须是常量表达式或者拥有无参构造函数的值类型
可选参数不能使用ref和out
方法声明和方法调用时,必填参数必须在可选参数前面
但是params参数仍然在最后面
也就是说可选参数后面只能是params参数
可以混合使用可选参数和命名参数
可以混合使用按位参数和命名参数
ref Locals就是对数组元素的引用,修改ref Locals就是修改数组元素
ref Local的目标必须是数组元素,字段,本地变量;不能是属性;
ref local和ref return联合使用,常用于微优化场景
var自动类型推导
类似cpp11的auto关键字
今天的文章
变量 参数_c++形式参数分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/80129.html