关于C#中方法参数传递的有关问题
关于C#中方法参数传递的问题
在C#高级编程(第七版)写到方法中的参数默认是按照值类型传递的
c#(.net)框架中预定义15个类型其中13个是值类型,另外两个(string && object)是引用类型。
按照上述的结果是如果把string 和 object传递给方法在方法类改变这一值其外部的值会被改变。
测试代码:
在C#高级编程(第七版)写到方法中的参数默认是按照值类型传递的
c#(.net)框架中预定义15个类型其中13个是值类型,另外两个(string && object)是引用类型。
按照上述的结果是如果把string 和 object传递给方法在方法类改变这一值其外部的值会被改变。
测试代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
/// <summary>
/// 论证方法的参数是否以引用传递。参数以值类型传递
/// </summary>
class Program
{
static void Main(string[] args)
{
string Test = "I Love You!";
Program TestString = new Program();
TestString.ChangeString(Test);
Console.WriteLine(Test);//I Love You!
int[] ints = { 0, 1, 2, 3 };
TestString.ChangeArray(ints);
Console.WriteLine(ints[0].ToString());
Console.ReadKey();
}
public void ChangeString(string str)
{
str = "I heart you";
}
public void ChangeArray(int[] ints)
{
ints[0] = 100;
}