string/String类型作为参数是传值还是传址_AX
最近发现一道ASP.NET笔试题考察传值还是传址,简单看了一下,突然发现答案中分析:
string类型参数为传值....严重与我观念中的为传址(引用)冲突.故做以下测试
输出结果真的令我伤心.
结果:AX
【注】String类型的结果相同
验证其为传值.
为什么我把它当成传址呢?而且我清楚记得string是对象类型,如果是对象类型,当然是传址.
难道是Java中这么定义的?
string类型参数为传值....严重与我观念中的为传址(引用)冲突.故做以下测试
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace TestString
6{
7 class TestString
8 {
9 public static void Main()
10 {
11 string s = "AX";
12 Change(s);
13 Console.WriteLine(s);
14 Console.ReadLine();
15 }
16
17 private static void Change(string s)
18 {
19 s = "zhz";
20 }
21 }
22}
23
2using System.Collections.Generic;
3using System.Text;
4
5namespace TestString
6{
7 class TestString
8 {
9 public static void Main()
10 {
11 string s = "AX";
12 Change(s);
13 Console.WriteLine(s);
14 Console.ReadLine();
15 }
16
17 private static void Change(string s)
18 {
19 s = "zhz";
20 }
21 }
22}
23
输出结果真的令我伤心.
结果:AX
【注】String类型的结果相同
验证其为传值.
为什么我把它当成传址呢?而且我清楚记得string是对象类型,如果是对象类型,当然是传址.
难道是Java中这么定义的?
少帮主的斧头好久不饮血了!