嗯,结构真实的按值传递
值类型
所有简单的预定义类型
所有结构
所有枚举引用类型
object
string
所有的类可object是按引用阿。。为啥也不对?

解决方案 »

  1.   

    谁告诉你object是按引用传递?如果想这样做的话,把public static  void changeVal(ref object t1),在调用方法的时候也要声明为changeVal(ref temp)这样。不过你程序有点乱,自己再好好看看书吧
      

  2.   

    .Net框架支持的所有数据类型——本机数据类型和自定义的数据类型——都可以分为
       引用类型(reference type)和值类型(value type)两个大类。简而言之,
       引用类型的行为类似于对象,而值类型的行为类似于标量类型(Integer和Single)。
       在.NET 框架中,一切都是对象,而大部分数据类型是引用类型。在声明一个引用类型
       的变量时,会为一个指向实际对象的指针变量(一个在当前Windows平台上的32位整型值)
       分配内存。对象本身存储在一个叫做托管堆(managed heap)的内存区域中,并处于
       .NET框架运行库的管理之下;而指针变量可以保存在其他位置(例如,如果指针变量是
       一个过程内部声明的动态变量,则该指针变量保存在堆栈中)。   所有的.NET数字类型都是值类型,枚举和结构体也是值类型。.NET字符串和数组、类是
       引用类型。
      
       在将一个值类型(如整型)赋给一个Object变量时,将发生一个最简单的装箱操作:
       (1)在堆中分配出一块内存;
       (2)在该内存块中原整型值被复制;
                       *************
       (3)该内存的地址被赋给Object变量。
       对一个值进行装箱是指编译器在托管堆中创建一份该值得副本,并将副本的地址赋予Object
       类型的变量或参数,这样就可以将值类型用作引用类型。装箱值并不保留与原始值的链接,
       所以可以修改这两值之一,而不会影响另一个值。
                              ................