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

📄 phonebook.cs

📁 微软系列丛书<<C#2005从入门到精通>>
💻 CS
字号:

namespace Indexers
{
	using System;

	sealed class PhoneBook
	{
		public PhoneBook()
		{
			int initialSize = 0;
			this.used = 0;
			this.names = new Name[initialSize];
			this.phoneNumbers = new PhoneNumber[initialSize];
		}
		
		public void Add(Name name, PhoneNumber number)
		{
			enlargeIfFull();
			this.names[used] = name;
			this.phoneNumbers[used] = number;
			this.used++;
		}

        public Name this[PhoneNumber number]
        {
            get
            {
                int i = Array.IndexOf(this.phoneNumbers, number);
                if (i != -1)
                    return this.names[i];
                else
                    return new Name();
            }
        }

        public PhoneNumber this[Name name]
        {
            get
            {
                int i = Array.IndexOf(this.names, name);
                if (i != -1)
                    return this.phoneNumbers[i];
                else
                    return new PhoneNumber();
            }
        }

		private void enlargeIfFull()
		{
			if (this.used == this.names.Length)
			{
				int bigger = used + 16;
				
				Name[] moreNames = new Name[bigger];
				this.names.CopyTo(moreNames, 0);
				
				PhoneNumber[] morePhoneNumbers = new PhoneNumber[bigger];
				this.phoneNumbers.CopyTo(morePhoneNumbers, 0);
						
				this.names = moreNames;
				this.phoneNumbers = morePhoneNumbers;
			}
		}

		private int used;
		private Name[] names;
		private PhoneNumber[] phoneNumbers;
	}
}

⌨️ 快捷键说明

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