在C#中值类型都是由System.ValueType的直接派生类,System.ValueType本身又是直接从System.Object派生的。派生的意思是‘利用继承机制,新的类可以从已有的类中生出来‘。简单点就是‘粑粑生娃’。有时是‘爷爷生娃‘例如:枚举都从System.Enum抽象类派生,而后者又从System.ValueType派生。值类型的基类是:System.ValueType,而引用类型的基类是System.Object

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace TestArrayList
{
class Program
{
static void Main(string[] args)
{
//System.Array
//1、数组[]特定类型、固定长度
//2、探讨system.Array与数组的关系
//3、证明数组是引用类型
string[] str1 = new string[];
System.Array array =new string[];
str1[] = "a";
str1[] = "b";
str1[] = "c"; array = str1;
Console.WriteLine(str1[]);
Console.WriteLine(array.GetValue()); string[] str2 = new string[];
System.Array array2 = new string[];
string d ="d";
string e ="e";
string f ="f";
array2.SetValue(d,);
array2.SetValue(e, );
array2.SetValue(f, );
//强制类型装换 装箱
str2 =(string[])array2; Console.WriteLine(str2[]);
Console.WriteLine(array2.GetValue());
//通过IsValueType方法判断
bool ArrayType = str1.GetType().IsValueType;
Console.WriteLine(ArrayType); Type arryaTypeT = str1.GetType();
Console.WriteLine(arryaTypeT.ToString());
//通过GetType方法得到类型
string ArrayType2 = typeof(string[]).ToString();
Console.WriteLine(ArrayType2);
Console.ReadKey();
}
}
}

通过对象彼此赋值发现System.Array对string类型的数组可直接接受赋值,其实System.Array是所有数组的‘粑粑’,具体的数组都是通过它隐式派生来的。运行结果如下

小结:数组是派生自System.ValueType的一种引用类型的数据结构

C# Array数组是引用类型的更多相关文章

  1. JavaScript高级编程——引用类型、Array数组使用、栈方法

    JavaScript高级编程——引用类型.Array数组使用.栈方法 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999 ...

  2. JavaScript引用类型之Array数组之强大的splice()方法

    splice()方法可以说是Array数组最强大的方法,他的用法很多,主要用法是向数组的中部插入项! 下面是它的用法: arrayObject.splice(index,howmany,element ...

  3. JavaScript引用类型之Array数组的toString()和valueof()方法的区别

    一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...

  4. Java Array数组使用详解

    本文主要讲解java中array数组使用,包含堆.栈内存分配及区别 1.动态初始化 package myArray; /* * 堆:存储的是new出来的东西,实体,对象 * A 每个对象都有地址值 * ...

  5. 了解PHP中的Array数组和foreach

    1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组    . 2.例子:一般的数组 这里,我 ...

  6. JavaScript的json和Array及Array数组的使用方法

    1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...

  7. iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)

    // // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...

  8. 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量

    多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...

  9. c++中的array数组和vector数组

    我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <a ...

随机推荐

  1. 设计一个卖不同种类车的4s店

    # 定义奔驰车类 class BenchiCar(object): # 定义车的方法 def move(self): print('---奔驰车在移动---') def stop(self): pri ...

  2. 第四次作业之jieba库的应用

    #!/usr/bin/python# -*- coding:utf-8 -*- import imp,sys imp.reload(sys)from matplotlib.font_manager i ...

  3. 报错:严重: Servlet.service() for servlet [springmvc] in context with path [ ] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

    解决:service类或dao类需要@Autowired

  4. java I/O流详解

    概况 I/O流主要分为二大类别:字符流和字节流. 字节流(基本流) 1.字节输入流    类名:FileInputStream    特点:读(对文件进行读取操作)    父类:InputStream ...

  5. 全面认识openstack:OpenStack架构详解

    OpenStack构架知识梳理   OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟 ...

  6. mysql分表经验总结

    一.为什么要分表? 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,有可能会死在那儿了.分表的目的就在于此,减小数据库的负担,缩短查询时间.根据个人经验,mysql执行一个s ...

  7. Java公开课-06.单例

    一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建 ...

  8. 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法

    比如Json.NET的JObject明明实现了IEnumerable<T>,具体来说是IEnumerable<KeyValuePair<string, JToken>&g ...

  9. 阿里云oss挂载到linux本地文件系统

    对象存储 OSS 阿里云对象存储服务 (OSS) 是一种高度可伸缩且安全可靠的云对象存储服务,让您可以存储.备份和归档大量数据.阿里云 OSS 是一种简单易用的服务,让您每秒能处理数百万请求,它还支持 ...

  10. Go性能优化小结

    1 内存优化 1.1 小对象合并成结构体一次分配,减少内存分配次数 做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间, ...