黑马程序员技术交流社区

标题: 我什么把对象作为参数,在方法中不能修改对象。. [打印本页]

作者: 鲜学良    时间: 2012-12-17 10:09
标题: 我什么把对象作为参数,在方法中不能修改对象。.
本帖最后由 鲜学良 于 2012-12-21 16:33 编辑

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            user u1=new user{UName="kk",Age=12};
Change(u1);
            Console.WriteLine(u1.UName);
            Console.ReadKey();
        }
    static void Change(user u)
  {
u=new user();
u.UName="change";
  }

public class user
{
public string UName{get;set;}
public int Age{get;set;}

}
    }
}
//为什么输出结果不是change呢

作者: 黑马丁巍    时间: 2012-12-17 10:31
果果,属性前 没+访问修饰符
public class user
{
public string UName{get;set;}
puclic int Age{get;set;}

}
应该会报错的啊,你看报错信息
作者: Sailing.    时间: 2012-12-20 23:04
你的代码我运行出来了,是change。类本来就是引用类型。
作者: 鲜学良    时间: 2012-12-21 11:59
Sailing. 发表于 2012-12-20 23:04
你的代码我运行出来了,是change。类本来就是引用类型。

不好意思上次代码直接在网上写的,少了Change方法中的第一句u=new user();
作者: 罗会涛    时间: 2012-12-21 12:32
鲜学良 发表于 2012-12-21 11:59
不好意思上次代码直接在网上写的,少了Change方法中的第一句u=new user();

引用u指向的对象改了,修改的是新的对象,原来的没有被改变所以还是“kk”
作者: 鲜学良    时间: 2012-12-21 16:33
本帖最后由 鲜学良 于 2012-12-21 16:34 编辑
罗会涛 发表于 2012-12-21 12:32
引用u指向的对象改了,修改的是新的对象,原来的没有被改变所以还是“kk” ...

知道了。谢谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2