zoukankan      html  css  js  c++  java
  • 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;
            intList[2] = 7;
        }
    }

    执行结果:

     结论:C#数组为引用类型。int[] 数组内的元素为值类型

    二、对数组的理解衍生?

    1、数组派生于 System.Array

    2、int[] 是引用类型,但 int[] 内部的 int 元素是 值类型。且 值类型的 int 元素都位于托管堆上,不在栈上。

    3、值类型数组和应用类型数组的初始化差异

  • 相关阅读:
    设计模式之策略模式、观察者模式浅析
    axis2_1.6.2之构建web端和客户端
    EJB3之查询
    qpid之简单实例
    ant1.9.4之编译、打包、发布、清理
    四数之和
    电话号码的字母的组合
    最接近的三数之和
    三数之和
    最长公共前缀
  • 原文地址:https://www.cnblogs.com/yxcn/p/15043929.html
Copyright © 2011-2022 走看看