嗯,结构真实的按值传递
值类型
所有简单的预定义类型
所有结构
所有枚举引用类型
object
string
所有的类可object是按引用阿。。为啥也不对?
值类型
所有简单的预定义类型
所有结构
所有枚举引用类型
object
string
所有的类可object是按引用阿。。为啥也不对?
解决方案 »
- 关于web页面登陆的方法
- winform下,datagridview样式问题
- C#中操作Excel的问题
- winform
- 求助 :做网页时生成的.aspx编译时 可以通过 可是放到iis 中就不能访问了
- 在winform中,让系统重新启动的代码如何写,大家帮忙!
- 经典问题,vs编译时引用项目是否比引用dll文件慢??
- button 的 enable=false 怎么让他响应mouseup mousedown的事件呢
- 在分发C#.Net WinForm程序时出错,
- C#开发COM组件非常简单,那么如何能让C#做的组件(或ActiveX控件)用在没有.Net环境的系统中(如win98用户的浏览器中)
- ((如何捕足IE里所有的内容)),将其转换为图片的格式输出>>>>>欢迎大家来讨论!
- 我的防火墙为什么不停的闪呀! 都好几天了。。。。。被拒绝的信息如下,请帮帮忙,这是怎么回事?
引用类型(reference type)和值类型(value type)两个大类。简而言之,
引用类型的行为类似于对象,而值类型的行为类似于标量类型(Integer和Single)。
在.NET 框架中,一切都是对象,而大部分数据类型是引用类型。在声明一个引用类型
的变量时,会为一个指向实际对象的指针变量(一个在当前Windows平台上的32位整型值)
分配内存。对象本身存储在一个叫做托管堆(managed heap)的内存区域中,并处于
.NET框架运行库的管理之下;而指针变量可以保存在其他位置(例如,如果指针变量是
一个过程内部声明的动态变量,则该指针变量保存在堆栈中)。 所有的.NET数字类型都是值类型,枚举和结构体也是值类型。.NET字符串和数组、类是
引用类型。
在将一个值类型(如整型)赋给一个Object变量时,将发生一个最简单的装箱操作:
(1)在堆中分配出一块内存;
(2)在该内存块中原整型值被复制;
*************
(3)该内存的地址被赋给Object变量。
对一个值进行装箱是指编译器在托管堆中创建一份该值得副本,并将副本的地址赋予Object
类型的变量或参数,这样就可以将值类型用作引用类型。装箱值并不保留与原始值的链接,
所以可以修改这两值之一,而不会影响另一个值。
................