您的位置:首页 > 其它

.Net学习笔记----2015-06-28(值类型和引用类型)

2015-06-29 00:26 316 查看
值类型:int double char decimal bool enum struck;存在内存的栈里

引用类型: string 数组 自定义类 集合 object 接口;存在堆里

值传递和引用传递:

1、值类型在复制的时候,传递的是这个值的本身

2、引用类型在复制的时候,传递的是这个对象的引用





字符串是个特殊:

  字符串由于其不可变性,每次赋值都会为其开辟一块新的内存如:

string s1 = "张三";
string s2 = s1;
s2 = "李四";
Console.WriteLine(s1);
Console.WriteLine(s2);
Console.ReadKey();


最终结果,s1 = 张三, s2 = 李四

int number = 10;
TestTwo(ref number);
Console.WriteLine(number);
Console.ReadKey();

}

public static void TestTwo(ref int n)
{
n += 10;
}


上述代码中,ref把n的地址变成类number的地址,也就是,ref把值传递变成了引用传递。

如果不加ref,值传递是把number的值传递给n,方法中没有返回值,不会改变外部调用方法时传递的实参,

但是加了ref以后,n接收的是number的地址,所以n的改变就会影响number的值(按照自己的理解所写,有点乱,呵呵)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: