C#中的参数传递
⽅法的参数传递机制:
writeline输出数值变量
1.值参数 (Value Parameter)
⽅法名称 ( 参数类型参数名称[,参数类型参数名称] )
2.引⽤参数 (Reference Paramter)
⽅法名称 ( ref 参数类型参数名称 [,ref 参数类型参数名称] )
3.输出参数 (Out Paramter)
⽅法名称 ( out 参数类型参数名称[,out 参数类型参数名称] )
输出参数和引⽤参数的区别:
从CLR的⾓度看,关键字out和关键字ref是等效的,也就是说,⽆论使⽤哪个关键字,都会⽣成相同的元数据和IL代码.但是C#编译器将两个关键字区别对待,在c#中,这两个关键字的区别在于哪个⽅法负责初始化引⽤对象.
<1>若是使⽤的out关键字,那么调⽤者不希望在调⽤⽅法之前初始化对象,被调⽤的⽅法不能读取对象的值,⽽且被调⽤的⽅法必须在返回之前为对象赋值.
<2>若是使⽤的ref关键字,那么调⽤者必须在调⽤⽅法之前⾸先初始化参数的值,被调⽤的⽅法可以读取参数或为参数赋值.
例:
3.对⽐值类型和引⽤类型:
值类型引⽤类型
变量中存放的真正的数据指向数据的引⽤指针
内存空间分配堆栈(Stack)                      托管堆(Managed Heap)
内存需求⼀般较⼩较⼤
执⾏效能较快较慢
内存释放时间点执⾏超过定义变量的作⽤域由回收站负责回收
可以为null        不可以为null                          可以为null

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。