Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 89

Создать индексатор, который предотвращает нарушение границы массива

30.04.2015, 01:07. Показов 1676. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Кликните здесь для просмотра всего текста
Класс инкапсулирует одномерный массив с элементов целого типа. Создать индексатор, который предотвращает нарушению границы массива. Создать способность, доступа к чтению закрытого элемента- данного, который контролирует доступ к переменой длине массива.

Код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//Indexcs.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Dz
{
    class Indexcs
    {
        private int[] a = new int[6];
        public Indexcs(int a1, int a2,int a3,int a4, int a5, int a6)
        {
            a[0] = a1;
            a[1] = a2;
            a[2] = a3;
            a[3] = a4;
            a[4] = a5;
            a[5] = a6;
        }
        public int this[int i]
        {
            get
            {
                if ((a[i] > -1) && (a[i] < 11))
                    return a[i];
                else  throw new ArgumentOutOfRangeException();
            }
            set
            {
                if ((a[i] > -1) && (a[i] < 11))
                    a[i] = value;
                else throw new ArgumentOutOfRangeException();
            }
        }
    }
}
//Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Dz
{
    class Program
    {
        static void Main(string[] args)
        {
            Indexcs Fox = new Indexcs(2,3,5,19,4,2);
            Console.WriteLine(Fox[0] + " " +Fox[1] + " " + Fox[2] + " " +Fox[3]+ " " +Fox[4]+" "+Fox[5]+ "\n");
            Console.Read();
        }
    }
}
Добавлено через 7 минут
Как создать способность, доступа к чтению закрытого элемента- данного, который контролирует доступ к переменой длине массива? В этот кусок совсем не понял.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2015, 01:07
Ответы с готовыми решениями:

Создать одномерный индексатор, который возвращает строку, из всех элементов строки массива
Стоит такое задание: Класс инкапсулирует двумерный массив из элементов символьного типа Создать одномерный индексатор, который...

Индексатор для проверки выхода массива за границы
Помогите сделать индексатор, временно сделал просто catch, не могу разобраться. Правил программу по требованию в этой теме (может чего...

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

2
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
30.04.2015, 09:44
это что такое?
C#
1
((a[i] > -1) && (a[i] < 11))
зачем вы проверяете сами значения, проверяйте индекс:
C#
1
((i > -1) && (i < 11))
1
 Аватар для Kruds
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
30.04.2015, 09:48
Вангую что вам нужно просто сделать свойство возвращающее длину массива.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
 
class Program
{
    class Indexes
    {
        private int[] array;
 
        public Indexes(params int[] items)
        {
            array = new int[items.Length];
            Array.Copy(items, this.array, items.Length);
        }
 
        public int this[int index]
        {
            get
            {
                return this.array[index];
            }
            set
            {
                this.array[index] = value;
            }
        }
 
        public int Length
        {
            get
            {
                return this.array.Length;
            }
        }
    }
 
    static void Main()
    {
        Indexes i = new Indexes(1, 2, 3, 4);
        for (int j = 0; j < i.Length; j++)
            Console.WriteLine(i[j]);
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2015, 09:48
Помогаю со студенческими работами здесь

Создать одномерный индексатор
Класс инкапсулирует двумерный массив из элементов символьного типа. создать одномерный индексатор, который возвращает строку, которая...

Как создать индексатор к стеку
Есть код, помогите создать индексатор на чтение. class Program { static void Main(string args) { ...

Дано два одномерных массива, создать третий массив который содержит элементы первого массива
Дано два одномерных массива, создать третий массив который содержит элементы первого массива, но без элементов второго массива. Заранее...

Как создать индексатор с динамическим массивом?
Здравствуйте. У меня создано два класса, один - шаблон для объекта, а второй - индексатор, хранящий ссылки на массив объектов. Я хочу...

Создать одномерный индексатор, возвращающий заданный индексом столбец таблицы
Тему можно удалить))) Разобрался сам)) Оказалось просто :)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru