Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
2 / 2 / 0
Регистрация: 13.03.2016
Сообщений: 18
1
.NET 4.x

Как лучше присвоить большому количеству переменных одно и то же значение?

19.02.2017, 20:57. Показов 2266. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Раньше писал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Меню.ForeColor = Color.Gold;
 Текст_фамилия.ForeColor = Color.Gold;
Текст_имя.ForeColor = Color.Gold; 
Текст_отчество.ForeColor = Color.Gold;
Текст_факультет.ForeColor = Color.Gold; 
Текст_номер.ForeColor = Color.Gold;
Текст_дата.ForeColor = Color.Gold; 
Текст_балл.ForeColor = Color.Gold;
Выключить.ForeColor = Color.Gold;
 Включить.ForeColor = Color.Gold;
Редактирование.ForeColor = Color.Gold;
Количество.ForeColor = Color.Gold;
Знак.ForeColor = Color.Gold;
Потом стал писать всё в одну строчку:
C#
1
Меню.ForeColor = Текст_фамилия.ForeColor = Текст_имя.ForeColor = Текст_отчество.ForeColor = Текст_факультет.ForeColor = Текст_номер.ForeColor = Текст_дата.ForeColor = Текст_балл.ForeColor = Выключить.ForeColor = Включить.ForeColor = Редактирование.ForeColor=Количество.ForeColor = Знак.ForeColor = Color.Gold;
Второй вариант лучше тем, что, если я решу поменять цвет, мне придётся изменить код в одном только месте.

А с точки зрения производительности оба варианте эквиваленты? Компилятор в обоих случаях переведёт на язык машинных команд примерно одинаково?

Есть ли более оптимальный способ присвоить куче переменных одно и то же значение?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2017, 20:57
Ответы с готовыми решениями:

Как подключится к большому количеству ip
Здравствуйте. Нужна помощь и направление т.е подсказка по ежедневному доступу к 15-20 ip для...

Как применить формулу к большому количеству цифр
Плииииз!подскажите как применить формулу к большому количеству цифр,например: у меня есть несколько...

Раскрутка по большому количеству запросов
Есть такая сложность: 1) имеется сайт X 2) раскручивать его по ВЧ нет смысла, бюджет не тот....

Раскрутка по большому количеству запросов
Доброго времени суток, уважаемые seo-шники! Подскажите пожалуйста, как лучше всего делать...

11
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
19.02.2017, 21:04 2
Лучший ответ Сообщение было отмечено Кросс как решение

Решение

Раньше было читаемо, но неэффективно. Теперь нечитаемо и так же неэффективно. Раньше было лучше.
Цитата Сообщение от Кросс Посмотреть сообщение
Есть ли более оптимальный способ присвоить куче переменных одно и то же значение?
Значение заносишь в константу или настройки приложения и затем используешь где нужно.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const Color GoldColor = Color.Gold;
 
Меню.ForeColor = GoldColor;
Текст_фамилия.ForeColor = GoldColor;
Текст_имя.ForeColor = GoldColor; 
Текст_отчество.ForeColor = GoldColor;
Текст_факультет.ForeColor = GoldColor; 
Текст_номер.ForeColor = GoldColor;
Текст_дата.ForeColor = GoldColor; 
Текст_балл.ForeColor = GoldColor;
Выключить.ForeColor = GoldColor;
Включить.ForeColor = GoldColor;
Редактирование.ForeColor = GoldColor;
Количество.ForeColor = GoldColor;
Знак.ForeColor = GoldColor;
И ещё лучше избавиться от кириллицы
1
2 / 2 / 0
Регистрация: 13.03.2016
Сообщений: 18
19.02.2017, 21:23  [ТС] 3
Спасибо, я чувствовал, что что-то делаю не так

Добавлено через 3 минуты
Согласен, кириллицу лучше не использовать, хотя бы потому что постоянно раскладку переключать приходится
0
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.02.2017, 21:27 4
C#
1
2
3
4
5
6
const Color GoldColor = Color.Gold;
foreach (Control ctrl in this.Controls)
{
if ((ctrl is TextBox)||(ctrl is Button)) //добавить по вкусу)))
ctrl.ForeColor = GoldColor
}
1
2 / 2 / 0
Регистрация: 13.03.2016
Сообщений: 18
19.02.2017, 21:34  [ТС] 5
Значение заносишь в константу или настройки приложения и затем используешь где нужно.
Компилятор пишет, что тип System.Drawing.Color не может быть объявлен как const
0
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
19.02.2017, 21:39 6
Кросс, ну вот так я и подозревал. Объяви как поле только для чтения.
1
0 / 0 / 0
Регистрация: 19.02.2017
Сообщений: 13
19.02.2017, 21:42 7
А если так?
C#
1
2
3
4
5
string[] vars = { one, two };
            foreach (string i in vars)
            {
                //
            }
0
2 / 2 / 0
Регистрация: 13.03.2016
Сообщений: 18
19.02.2017, 21:48  [ТС] 8
Aferuga, спасибо, хороший способ сократить код
0
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.02.2017, 21:56 9
Тогда без const
C#
1
Color GoldColor = Color.Gold;
YobaMonkey, Непонятно что вы имеете ввиду?
0
2 / 2 / 0
Регистрация: 13.03.2016
Сообщений: 18
19.02.2017, 22:04  [ТС] 10
Aferuga, сделал так:
C#
1
2
readonly Color Gold = Color.Gold;
readonly Color Black = Color.Black;
0
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
19.02.2017, 22:14 11
Предпочитаю называть по смыслу
C#
1
2
readonly Color color_exception = Color.Gold;
readonly Color color_default = Color.Black;
1
309 / 309 / 215
Регистрация: 24.09.2013
Сообщений: 771
20.02.2017, 11:16 12
Кросс,
C#
1
2
foreach (object o in new object[] { Меню, Текст_фамилия, Текст_отчество /* и т.д. */ }) 
    o.GetType().GetProperty("ForeColor").SetValue(o, Color.Gold);
1
20.02.2017, 11:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2017, 11:16
Помогаю со студенческими работами здесь

Как присвоить значение переменных php переменным javascript?
Добрый день! можно ли как нибуть через ajax присвоить значение переменных php переменным...

Построение графика по большому количеству точек
Здравствуйте, имеет место следующая проблема, строю график по 5 точкам (рисунок 1, здесь просто...

Создание отчета в excel по большому количеству данных
Ребята, помогите, кто может! Очень срочно надо! Нужно создать такой отчет (в идеале в конце должен...

Можно ли оптимизировать выборку из БД по большому количеству параметров
Уважаемые коллеги. В процессе работы, возник ряд вопросов по оптимизации, не могли бы вы пояснить...


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

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