Классы - поля, конструкторы, свойства - C#

Узнай цену своей работы

Формулировка задачи:

Должны присутствовать: - конструктор - методы задания (с контролем правильности) и чтения полей класса, класс список значений. Поля: Список (массив целых чисел) размер списка (целое число). Для этого же класса написать методы: включение элемента в список исключение элемента из списка

Решение задачи: «Классы - поля, конструкторы, свойства»

textual
Листинг программы
using System;
 
class Program
{
    static void Main()
    {
        List list = new List();
        list.Add(3);
        list.Add(-5);
        list.Add(7);
        list.Add(2);
        list.RemoveAt(1);
        Console.WriteLine(list.Count);
        for (long i = 0; i < list.Count; i++)
            Console.WriteLine("list[{0}] = {1}", i, list[i]);
    }
}
 
sealed class List
{
    private const long STEP = 2;
 
    private long[] array;
 
    public List()
        : this(STEP) { }
 
    public List(long size)
    {
        if (size < 1)
            throw new ArgumentException();
        array = new long[size];
        Count = 0;
    }
 
    public List(List other)
    {
        if (other == null)
            throw new ArgumentNullException();
        this.array = new long[other.Count];
        this.Count = other.Count;
        Array.Copy(other.array, this.array, other.Count);
    }
 
    public long Count { get; private set; }
 
    public void Add(long value)
    {
        if (Count == array.Length)
            Extend();
        array[Count++] = value;
    }
 
    public void RemoveAt(long index)
    {
        CheckBound(index);
        Count--;
        for (long i = index; i < Count; i++)
            array[i] = array[i + 1];
    }
 
    public long this[long index]
    {
        get
        {
            CheckBound(index);
            return array[index];
        }
        set
        {
            CheckBound(index);
            array[index] = value;
        }
    }
 
    private void Extend()
    {
        long[] temp = new long[Count + STEP];
        Array.Copy(array, temp, Count);
        array = temp;
    }
 
    private void CheckBound(long index)
    {
        if (index < 0 || index >= Count)
            throw new ArgumentException("Выход за границу списка.", "index");
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.818 из 5
Похожие ответы