【C#】 1. 创建Array数据类型
来源:互联网 发布:linux tesseract yum 编辑:程序博客网 时间:2024/06/06 06:32
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace UserDefinedDataEXP{ //Array<T>: containers for one-dimensional data of arbitrary type T. It can hold any data //type and its main responsibility is to store and access one-dimensional data. public class Array<T> { // 变量 m_arr 和 m_startIndex protected T[] m_arr; // Standard C syntax protected int m_startIndex; // User-definable start index //构造器1:输入T[] source, int minIndex public Array(T[] source, int minIndex) { m_startIndex = minIndex; m_arr = new T[source.Length]; for (int i = 0; i < source.Length; i++) { if (source[i] is ICloneable) //source[i],即T类型是否执行了ICloneable接口 m_arr[i] = (T)(source[i] as ICloneable).Clone(); else m_arr[i] = source[i]; } } //构造器2:输入int len public Array(int len) { m_startIndex = 0; m_arr = new T[len]; } //构造器3:输入T[] source public Array(T[] source) { this.m_startIndex = 0; this.m_arr = new T[source.Length]; for (int i = 0; i < source.Length; i++) { if (source[i] is ICloneable) //source[i],即T类型是否执行了ICloneable接口 m_arr[i] = (T)(source[i] as ICloneable).Clone(); else m_arr[i] = source[i]; } } //构造器4:输入int len, int minIndex public Array(int len, int minIndex) { this.m_startIndex = minIndex; this.m_arr = new T[len]; } //构造器5:int len, int minIndex, T initvalue public Array(int len, int minIndex, T initvalue) { this.m_startIndex = minIndex; this.m_arr = new T[len]; for (int i = 0; i < len; i++) { m_arr[i] = initvalue; } } //返回m_arr数组元素 public T this[int pos] { // User-defined position get { return m_arr[pos - m_startIndex]; } set { m_arr[pos - m_startIndex] = value; } } //MaxIndex属性 public int MaxIndex { get { return m_arr.Length+m_startIndex-1; } } //MinIndex属性 public int MinIndex { get { return m_startIndex; } } //Print函数 public void print() { for (int i =m_startIndex; i < m_arr.Length+m_startIndex; i++) { Console.Write("{0}, ", this[i].ToString()); } Console.WriteLine(); } } class Array { static void Main(string[] args) { //1.测试构造器4 int startIndex = -1; Array<double> arr = new Array<double>(10, startIndex); for (int j = arr.MinIndex; j <= arr.MaxIndex; j++) { arr[j] = (double)(j); } arr[arr.MinIndex] = 99.98; arr.print(); // 2.测试构造器3 int size = 10; int[] arr2 = new int[size]; // Store data in a contiguous block // Initialize for for (int j = 0; j < size; ++j) { arr2[j] = j + 1; } Array<int> arr3 = new Array<int>(arr2); arr3[0] = 100000; //与arr2不享用值 arr3.print(); Console.WriteLine(arr2[0]); //3.超出索引界限 try { Array<int> myArr = new Array<int>(20); myArr[10000] = 34; } catch (IndexOutOfRangeException e) { Console.WriteLine(e.Message); } //4.初始化 Array<int> arr4 = new Array<int>(10,0,4); arr4.print(); Console.ReadLine(); } }}
0 0
- 【C#】 1. 创建Array数据类型
- C#-数据类型-Array
- 数据类型Array.isArray
- array.c
- c++:array
- C -array
- C++---array
- js 数据类型 Array,Object,RegExp
- hive复合数据类型之array
- Javascript基础---引用数据类型Array
- C 数据类型
- C 数据类型
- c--数据类型
- C 数据类型
- C---数据类型
- c--数据类型
- 数据类型(C#)
- C#-数据类型
- Maven常用命令
- 面试10大算法汇总
- MySQL非安装版的配置
- Spring JDBC详解
- sql常用语句(w3c)
- 【C#】 1. 创建Array数据类型
- Qt版科学计算器
- (最新)Win7安装配置IIS7.5详细图文教程 (一)
- LeetCode Longest Valid Parentheses
- 每日三言
- python下载文件
- iOS中MVVM的架构设计
- 嵌入式智能平台在医疗仪器行业的应用方案
- ANDROID-友盟反馈自定义UI【部分原创】