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

Использовать количество элементов enum в качестве размера массива

28.01.2021, 00:35. Показов 1631. Ответов 1

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Внутри класса создаю пару enum для хранения информации о гильдиях NPCGuild и отношениях NPCAttitude непесей. Затем нужно создать общую для всех экземпляров класса матрицу отношений между гильдиями. Матрица — статический двумерный массив типа NPCAttitude размером [кол-во гильдий X кол-во гильдий]. При попытке создания массива с помощью 'Enum.GetValues(typeof(NPCGuild)).Length' и выдаёт ошибку "Требуется постоянное значение". Хотелось бы оставить весь этот код здесь, если это возможно, и ничего не выносить в другие классы. Помогите, пожалуйста, исправить ошибку:

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
public class NPC
{
    public enum NPCGuild
        {
            Wanderer,
            Mercenary,
            Guard,
        }
 
        public enum NPCAttitude
        {
            Undefined,
            Neutral,
            Enemy,
            Friend,
            Ally,
            Afraid,
        }
 
    /* Ошибка CS0150 Требуется постоянное значение. */
        private static NPCAttitude[,] guildsAttitude = new NPCAttitude[Enum.GetValues(typeof(NPCGuild)).Length, Enum.GetValues(typeof(NPCGuild)).Length]
        {
        //--Инициализация массива--
    };
 
    //--Ещё миллион строчек кода--
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2021, 00:35
Ответы с готовыми решениями:

Обобщения, где в качестве параметра enum (класс наследник Enum)
Хочу создать такой класс: public class Example <Y extends Enum> { ... } А потом: enum Ex {...

Переменная в качестве размера массива
Добрый вечер. Вопрос таков: мне нужно установить количество символов массива, равное переменной, но...

Массивы (переменная в качестве размера для массива)
Доброго времени суток! Подскажите, что я не правильно сделал? Там где у меня создаются массивы...

Определить количество элементов массива размера 10, значения которых равны последнему элементу.
Помогите :) N=10 Определить количество элементов массива, значения которых = последнему элементу.

1
1519 / 462 / 126
Регистрация: 09.01.2018
Сообщений: 1,094
28.01.2021, 01:50 2
Лучший ответ Сообщение было отмечено S1e как решение

Решение

Цитата Сообщение от S1e Посмотреть сообщение
Помогите, пожалуйста, исправить ошибку:
Инициализируйте массив отдельно или не указывайте размер при инициализации.

C#
1
2
3
4
5
6
        private static NPCAttitude[,] guildsAttitude = 
        {
            { NPCAttitude.Afraid, NPCAttitude.Ally, NPCAttitude.Friend},
            { NPCAttitude.Afraid, NPCAttitude.Ally, NPCAttitude.Friend},
            { NPCAttitude.Afraid, NPCAttitude.Ally, NPCAttitude.Friend},
        };
1
28.01.2021, 01:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2021, 01:50
Помогаю со студенческими работами здесь

Дан двумерный целочисленный массив размера n*m. Найти количество элементов этого массива, равных 1
Дан двумерный целочисленный массив размера n*m. Найти количество элементов этого массива, равных 1.

Найти номер строки массива размера m на n, в которых находится наибольшее количество четных элементов
Найти номер строки массива размера m на n в которых находиться наибольшее количество четных...

Определить максимальное количество одинаковых элементов массива, использовать функцию и указатели
Помогите, пожалуйста, ОЧЕНЬ срочно нужно! Дано целочисленный массив размера N. Определить...

VB6. Как использовать ImageList в качестве массива
Имеется рисунки. Их все, я вручную положу в ImageList. Вопрос: Как рисунки из ImageList вставлять...

Не удаётся использовать переменную в качестве размерности массива
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Дело в том, что я в...

1. Найти количество всех нулевых элементов массива A={a[i]}. Использовать динамическое выделение памяти.
1. Найти количество всех нулевых элементов массива A={a}. Использовать динамическое выделение...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru