C# 中的string
类型是引用类型,通过值传递引用类型参数会复制引用,因此我不需要使用ref
修饰符。但是,我需要使用ref
修饰符来修改 input string
。为什么是这样?
using System;
class TestIt
{
static void Function(ref string input)
{
input = "modified";
}
static void Function2(int[] val) // Don't need ref for reference type
{
val[0] = 100;
}
static void Main()
{
string input = "original";
Console.WriteLine(input);
Function(ref input); // Need ref to modify the input
Console.WriteLine(input);
int[] val = new int[10];
val[0] = 1;
Function2(val);
Console.WriteLine(val[0]);
}
}