Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
indefpro
1 / 1 / 0
Регистрация: 25.05.2014
Сообщений: 58
1

Как оптимизировать приведённый код?

19.12.2014, 17:02. Просмотров 395. Ответов 6
Метки нет (Все метки)

Доброе время суток!
У меня такой вопрос: Как можно оптимизировать подобный код?
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
 case 1:
                    Change = 0;
 
                    ChangeBtn1.Image = Image.FromFile(@"img/GameInterface/1.png");
                    ChangeBtn2.Image = Image.FromFile(@"img/GameInterface/2.png");
                    ChangeBtn3.Image = Image.FromFile(@"img/GameInterface/3.png");
                    ChangeBtn4.Image = Image.FromFile(@"img/GameInterface/4.png");
 
                    ChangeBtn1.Visible = true;
                    ChangeBtn2.Visible = true;
                    ChangeBtn3.Visible = true;
                    ChangeBtn4.Visible = true;
 
                    ChangeBoxText.Text = NameBuildings[Change];
                    break;
                case 2:
                    Change = 1;
 
                    ChangeBtn1.Image = Image.FromFile(@"img/GameInterface/5.png");
                    ChangeBtn2.Image = Image.FromFile(@"img/GameInterface/6.png");
 
                    ChangeBtn1.Visible = true;
                    ChangeBtn2.Visible = true;
                    ChangeBtn3.Visible = false;
                    ChangeBtn4.Visible = false;
 
                    ChangeBoxText.Text = NameBuildings[Change];
                    break;
C#
1
2
3
4
5
6
7
8
 ChangeBtn1.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn1.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn2.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn2.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn3.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn3.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn4.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 39, 163, 235);
            ChangeBtn4.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, 39, 163, 235);
Всем заранее спасибо.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2014, 17:02
Ответы с готовыми решениями:

Как оптимизировать код, где используется много методов .Contains?
Здравствуйте! Есть задача поиска всех url'ов на каком то сайте и найти в них битые/небитые. Задачу...

Заменить volatile на Thread.MemoryBarrier. Код приведён. Как оптимизировать обращения для чтения к volatile полю класса?
Не совсем понятна мне пока что работа Thread.MemoryBarrier. Знаю, что можно оптимизировать...

Исправить и оптимизировать код
Код: using System; using System.Collections.Generic; using System.Diagnostics; using...

Подключение к модему: оптимизировать код
Вопрос, наверное, по ООП. Предполагается, что к 4 ком-портам подключены 4 модема. На форме...

Оптимизировать код, обрабатывающий файлы с большим количеством слов
Задача такова, есть словарь на 100+ тысяч слов, нужно проверить каждое слово в нем на его...

6
fidgi
64 / 64 / 16
Регистрация: 07.04.2014
Сообщений: 332
19.12.2014, 17:14 2
Цитата Сообщение от indefpro Посмотреть сообщение
ChangeBtn1.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 39, 163, 235);
В WPF можно сделать стиль и применить его к кнопкам. Думаю что на WF тоже можно сделать что-то подобное.

Цитата Сообщение от indefpro Посмотреть сообщение
@"img/GameInterface/5.png"
ссылку можно вынести в ресурс или сделать перечисление.

Цитата Сообщение от indefpro Посмотреть сообщение
ChangeBtn1.Image = Image.FromFile(@"img/GameInterface/1.png");
Можно реализовать методы с передачей номера кнопки и ссылки (строка)/видимости (true/false) и вызывать его.

Добавлено через 5 минут
Вообще можно много чего сделать. Но скорее всего Вам стоит переработать структуру приложения. Тогда и надобность в таких конструкциях отпадёт
1
monstrilla
49 / 49 / 18
Регистрация: 26.07.2012
Сообщений: 188
19.12.2014, 21:14 3
а что здесь оптимизировать? или имелось ввиду "мне не нравится, что код частично дублируется, что делать?"?

делать метод-обертку, чтобы выставить кнопке видимость - это точно НЕ оптимизация.

C#
1
2
3
4
5
6
var myColor = Color.FromArgb(255, 39, 163, 235)
ChangeBtn1.FlatAppearance.MouseDownBackColor = myColor ;
ChangeBtn2.FlatAppearance.MouseOverBackColor = myColor ;
ChangeBtn3.FlatAppearance.MouseDownBackColor = myColor ;
...          
ChangeBtnX.FlatAppearance.MouseOverBackColor = myColor ;
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
if (myParam == 1)
{
    Change = 0;
 
    ChangeBtn1.Image = Image.FromFile(@"img/GameInterface/1.png");
    ChangeBtn2.Image = Image.FromFile(@"img/GameInterface/2.png");
    ChangeBtn3.Image = Image.FromFile(@"img/GameInterface/3.png");
    ChangeBtn4.Image = Image.FromFile(@"img/GameInterface/4.png");
 
    ChangeBtn3.Visible = true;
    ChangeBtn4.Visible = true;
 }
else if (myParam == 2)
{
    Change = 1;
 
    ChangeBtn1.Image = Image.FromFile(@"img/GameInterface/5.png");
    ChangeBtn2.Image = Image.FromFile(@"img/GameInterface/6.png");
 
    ChangeBtn3.Visible = false;
    ChangeBtn4.Visible = false;
}                
                  
ChangeBtn1.Visible = true;
ChangeBtn2.Visible = true;
ChangeBoxText.Text = NameBuildings[Change];
вот например
1
indefpro
1 / 1 / 0
Регистрация: 25.05.2014
Сообщений: 58
20.12.2014, 01:59  [ТС] 4
monstrilla, тут скорее имелось ввиду: "мне не нравится, что код частично дублируется, что делать?"
0
maxillion
277 / 187 / 52
Регистрация: 25.12.2012
Сообщений: 624
20.12.2014, 07:31 5
C#
1
2
3
4
5
6
7
8
9
Button[] button = new Button[] { ChangeBtn1, ChangeBtn2, ChangeBtn3, ChangeBtn4 };  
int Counter =1;
foreach (var b in button) b.Image = Image.FromFile(@"img/GameInterface/" + Counter++ + ".png");
foreach (var b in button) b.Visible = true;
foreach (var b in button) 
{
    b.FlatAppearance.MouseDownBackColor = Color.FromArgb(255, 39, 163, 235);
    b.FlatAppearance.MouseOverBackColor = Color.FromArgb(255, 39, 163, 235);
}
1
monstrilla
49 / 49 / 18
Регистрация: 26.07.2012
Сообщений: 188
20.12.2014, 13:11 6
indefpro, часто лучше длиннее, но понятнее, чем короче и не читабельно.
1
fidgi
64 / 64 / 16
Регистрация: 07.04.2014
Сообщений: 332
22.12.2014, 10:33 7
Цитата Сообщение от monstrilla Посмотреть сообщение
часто лучше длиннее, но понятнее, чем короче и не читабельно.
скажите это создателям regex и linq
0
22.12.2014, 10:33
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2014, 10:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как исправить приведённый код?
Доброго времени суток! При написании кода столкнулся с ошибкой C2440: #include <cliext/vector>...

Как отладить приведённый код (невозможность отладки)?
Есть классы: class PValue { public: char type; int int_num; long long long_num; ...

Прокомментировать приведённый код
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.