1、C#数组是值类型还是引⽤类型,对数组有什么更深层次的理
解?
⼀、数组是什么类型?
案例:
public class Program
{
public static void Main(string[] args)
{
int[] intList =new int[3] { 1,2,3};
bool type = intList.GetType().IsValueType;
Console.WriteLine($"数组是否为值类型:{type}");
bool itemType = intList[0].GetType().IsValueType;
Console.WriteLine($"数组内的元素是否为值类型:{itemType}");
ChangeIntList(ref intList);
Console.WriteLine($"intList={intList[0]}, {intList[1]}, {intList[2]}");
Console.Read();
}
private static void ChangeIntList(ref int[] intList)
{
intList[0] = 9;
intList[1] = 8;
writeline方法属于类intList[2] = 7;
}
}
执⾏结果:
结论:C#数组为引⽤类型。int[] 数组内的元素为值类型
⼆、对数组的理解衍⽣?
1、数组派⽣于 System.Array
2、int[] 是引⽤类型,但 int[] 内部的 int 元素是值类型。且值类型的 int 元素都位于托管堆上,不在栈上。
3、值类型数组和应⽤类型数组的初始化差异

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。