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

Константы на основе других констант

14.03.2019, 15:03. Показов 2706. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не даёт объявить константу, рассчитывающуюся из других констант. Как обойти?
C#
1
2
3
4
        
        public const int max_X = 100;
        public const int max_Y = 100;
        public static double max_R = Math.Sqrt(Math.Pow(max_X, 2) + Math.Pow(max_Y, 2));
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2019, 15:03
Ответы с готовыми решениями:

Константа как объединение других констант
В других языках можно константу-член класса задать как результат объединения других констант. А в...

Использование функций и констант из других файлов
Использование функций и констант из других notebook-ов. Например у меня множества констант и...

Создание списка на основе трёх других
Задача состоит в следующем: Даны и списка A,B,C, надо сформировать список S так: A , B,C, S должен...

Создание таблицы в Access на основе других таблиц
Есть 3 таблицы: Движение, ЛЗК, Требования. В каждой находится столбец "Код материала", в таблице...

6
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
14.03.2019, 15:08 2
Тут можно разве что readonly указать...
0
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 41
14.03.2019, 15:13  [ТС] 3
Цитата Сообщение от Someone007 Посмотреть сообщение
readonly указать
Не вариант, потом это используется в качестве границ массива.
0
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
14.03.2019, 15:31 4
Цитата Сообщение от Dark_Spirit Посмотреть сообщение
потом это используется в качестве границ массива
Чем плохо использование readonly поля в качестве границ массива?

Если вам нужна константа, вычислите её и укажите конкретное значение...
0
0 / 0 / 0
Регистрация: 19.02.2019
Сообщений: 41
14.03.2019, 16:09  [ТС] 5
Цитата Сообщение от Someone007 Посмотреть сообщение
readonly поля в качестве границ массива
Это естественно не работает -
C#
1
2
public static readonly double max_R = Math.Sqrt(Math.Pow(max_X, 2) + Math.Pow(max_Y, 2));
public double[,] ParametricGreed = new double[Constans.max_R, 2*Math.PI];
Цитата Сообщение от Someone007 Посмотреть сообщение
Если вам нужна константа, вычислите её
Я и вычисляю её на основании других констант
0
Эксперт .NET
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
14.03.2019, 16:12 6
Лучший ответ Сообщение было отмечено Dark_Spirit как решение

Решение

Все прекрасно работает если привести к корректным типам (у массива размерность - целое число, а не с плавающей запятой...)
C#
1
public double[,] ParametricGreed = new double[(int)Constans.max_R, (int)(2 * Math.PI)];
0
Администратор
Эксперт .NET
17567 / 13789 / 5299
Регистрация: 17.03.2014
Сообщений: 28,268
Записей в блоге: 1
14.03.2019, 16:13 7
Лучший ответ Сообщение было отмечено Usaga как решение

Решение

Dark_Spirit, в данном случае max_R придется объявить как static readonly вместо const. В целом константы могут ссылаться на другие константы, но методы использовать, увы, нельзя.

Добавлено через 7 минут
Нашел предложение ввести в язык понятие детерминизма, которое, в частности, позволило писать бы константы с вычислениями, но это дело отдаленного будущего.
2
14.03.2019, 16:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2019, 16:13
Помогаю со студенческими работами здесь

Сформировать список на основе двух других по правилу
Создать метод формирования списка L, включив в него по одному разу элементы, которые входят хотя бы...

Создание таблицы на основе перебора значений из других таблиц
Добрый день, уважаемые посетители форма. Прошу помощи в решении следующего вопроса. Не знаю как к...

Сформировать одномерный массив на основе двух других массивов
Даны два массива: А, состоящий из N элементов и В, состоящий из N элементов. Сформировать массив C...

Создать гистограмму на поле на основе значений других полей
Нужно создать гистограмму, как на картинке, только, чтоб выделение цвета было по значению других...


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

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