⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamicarray.cs

📁 Data Structures and Algorithms with Object-Oriented Design Patterns in C# 这本书的范例代码dll自己反编译的source
💻 CS
字号:
namespace Opus6
{
    using System;
    using System.Reflection;
    using System.Text;

    [Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng."), Version("$Id: DynamicArray.cs,v 1.3 2001/11/04 20:49:34 brpreiss Exp $")]
    public class DynamicArray
    {
        public DynamicArray() : this(0, 0)
        {
        }

        public DynamicArray(int n) : this(n, 0)
        {
        }

        public DynamicArray(int n, int m)
        {
            this.data = new object[n];
            this.baseIndex = m;
        }

        public void Copy(DynamicArray array)
        {
            if (array != this)
            {
                if (this.data.Length != array.data.Length)
                {
                    this.data = new object[array.data.Length];
                }
                for (int num1 = 0; num1 < this.data.Length; num1++)
                {
                    this.data[num1] = array.data[num1];
                }
                this.baseIndex = array.baseIndex;
            }
        }

        public static void Main()
        {
            DynamicArray array1 = new DynamicArray(4);
            array1[0] = 0x39;
            array1[1] = "hello";
            array1[2] = null;
            Opus6.Console.WriteLine(array1);
            Opus6.Console.WriteLine("BaseIndex returns {0}", array1.BaseIndex);
            Opus6.Console.WriteLine("Length returns {0}", array1.Length);
        }

        public override string ToString()
        {
            StringBuilder builder1 = new StringBuilder();
            builder1.Append("DynamicArray {\r\nbaseIndex = " + this.baseIndex + "\r\n");
            for (int num1 = 0; num1 < this.data.Length; num1++)
            {
                builder1.Append(string.Concat(new object[] { num1, ": ", this.data[num1], "\r\n" }));
            }
            builder1.Append("}");
            return builder1.ToString();
        }


        public int BaseIndex
        {
            get
            {
                return this.baseIndex;
            }
            set
            {
                this.baseIndex = this.baseIndex;
            }
        }

        public object[] Data
        {
            get
            {
                return this.data;
            }
        }

        public object this[int position]
        {
            get
            {
                return this.data[position - this.baseIndex];
            }
            set
            {
                this.data[position - this.baseIndex] = value;
            }
        }

        public int Length
        {
            get
            {
                return this.data.Length;
            }
            set
            {
                if (this.data.Length != value)
                {
                    object[] objArray1 = new object[value];
                    int num1 = (this.data.Length < value) ? this.data.Length : value;
                    for (int num2 = 0; num2 < num1; num2++)
                    {
                        objArray1[num2] = this.data[num2];
                    }
                    this.data = objArray1;
                }
            }
        }


        protected int baseIndex;
        protected object[] data;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -