int跟object类型转换的问题!

kardkard 2006-10-30 05:22:38
using System;

namespace helloworld
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
int x = 1;
object y = x;
              Console.WriteLine("this is {0}",y);
f(y);
Console.WriteLine("this is {0}",y);
}
static void f(object y) {
y = 3;
}
}
}
发现y的值在调用前后没有变化,觉得很纳闷,object不是引用类型吗,怎么会没有变化呢?
还有我想知道,int类型装箱和取消装箱的过程具体是怎么实现的,内存是怎么样安排的?
...全文
224 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinghawk 2006-10-30
  • 打赏
  • 举报
回复
我想楼主是误会C#中引用类型在作为函数参数时的调用方法了,这里的调用和C中的指针或引用不是一个概念,并不是直接更改托管内存中的数据,要返回,需要使用ref或者out。
scow 2006-10-30
  • 打赏
  • 举报
回复
值类型和引用类型都从object继承
scow 2006-10-30
  • 打赏
  • 举报
回复
int继承valuetype,valuetype继承object
灰太狼 2006-10-30
  • 打赏
  • 举报
回复
復雜類型才是引用,像int,float等這種簡單變量,C#還是按傳值來對待的。
cjnet 2006-10-30
  • 打赏
  • 举报
回复
且f(y)也改f(out y)
cjnet 2006-10-30
  • 打赏
  • 举报
回复
不行啦,除非改成:
static void f(out object y) {
y = 3;
}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧