1、C# 数组是值类型还是引用类型,对数组有什么更深层次的理解?
2021-07-22 14:28 石吴玉 阅读(4768) 评论(2) 编辑 收藏 举报一、数组是什么类型?
案例:
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; intList[2] = 7; } }
执行结果:
结论:C#数组为引用类型。int[] 数组内的元素为值类型
二、对数组的理解衍生?
1、数组派生于 System.Array
2、int[] 是引用类型,但 int[] 内部的 int 元素是 值类型。且 值类型的 int 元素都位于托管堆上,不在栈上。
3、值类型数组和应用类型数组的初始化差异
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步