C# Array数组是引用类型
在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数组是引用类型的更多相关文章
- JavaScript高级编程——引用类型、Array数组使用、栈方法
JavaScript高级编程——引用类型.Array数组使用.栈方法 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999 ...
- JavaScript引用类型之Array数组之强大的splice()方法
splice()方法可以说是Array数组最强大的方法,他的用法很多,主要用法是向数组的中部插入项! 下面是它的用法: arrayObject.splice(index,howmany,element ...
- JavaScript引用类型之Array数组的toString()和valueof()方法的区别
一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...
- Java Array数组使用详解
本文主要讲解java中array数组使用,包含堆.栈内存分配及区别 1.动态初始化 package myArray; /* * 堆:存储的是new出来的东西,实体,对象 * A 每个对象都有地址值 * ...
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- JavaScript的json和Array及Array数组的使用方法
1.关于json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.也可以称为数据集和数组类似,能够存数据! //Ar ...
- iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
// // ViewController.swift // Swift-Array // // Created by luorende on 16/9/12. // Copyright © 2016年 ...
- 多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量
多动手试试,其实List类型的变量在页面上取到的值可以直接赋值给一个js的Array数组变量,并且数组变量可以直接取到每一个元素var array1 = '<%=yearList =>'; ...
- c++中的array数组和vector数组
我觉得实验一下会记得比较牢,话不多直接上代码. 下面是array数组,感觉用的不多. //cpp 风格数组 array #include <iostream> #include <a ...
随机推荐
- Flask构建微电影(二)
第三章.项目分析.搭建目录及模型设计 3.1.前后台项目目录分析 微电影网站 前台模块 后台模块 前台(home) 数据模型:models.py 表单处理:home/forms.py 模板目录:tem ...
- git merge与 git rebase区别及实例
接Git分支创建与合并,在分支合并时,有两种方式:git merge 和git rebase. git merge:将两个分支,合并提交为一个新提交,并且新提交有2个parent. git rebas ...
- arcEngine开发之activeView.PartialRefresh(译)
为什么要使用partialRefresh arcMap应用程序窗口操作主要是由 IActiveView 控制的,并且它有 Map(data view) 和 PageLayout(layout view ...
- TCP连接和 time_wait、close_waite
TCP连接和 time_wait.close_waite tags:time_wait close_waite RST TCP 引言:前两天朋友公司的服务器垮掉了,最后查出的原因是发现大量的time_ ...
- js基础进阶--编的实用技巧(一)
我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...
- Makefile基础---编译
首先写一个自己的库: #include "../MyAPI.h" #include <cstdlib> #include <ctime> int getRa ...
- explicit的作用
用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换,例如:不加:Circle A = Circle(1.23) 加上之后:只能写:Circle A(1 ...
- ActiveMQ的消息持久化机制
为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式 ...
- 异常--java.text.ParseException: Unparseable date
String d = "2015-05-19" SimpleDateFormat sdf = new SimpleDateFormat( "yyyy/MM/dd HH ...
- SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 简单概述一下本讲 别名,sql片段简单写一下,模糊查询多写一点 一.别名 <typeAliases> ...