Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
K_F
3 / 3 / 0
Регистрация: 02.07.2013
Сообщений: 23
#1

Зациклить кусок кода

30.12.2013, 00:43. Просмотров 881. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Возможно, вопрос элементарный. Возникла следующая проблема:
Требуется обработать n элементов с шаблонными именами (a0, a1, a2, a3...).
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
switch (f.get(1))
            {
                case 'w': a1.BackColor = white;
                    break;
                case 'g': a1.BackColor = green;
                    break;
                case 'y': a1.BackColor = yellow;
                    break;
                case 'b': a1.BackColor = blue;
                    break;
                case 'r': a1.BackColor = red;
                    break;
                case 'p': a1.BackColor = purpul;
                    break;
            }
switch (f.get(2))
            {
                case 'w': a2.BackColor = white;
                    break;
                case 'g': a2.BackColor = green;
                    break;
                case 'y': a2.BackColor = yellow;
                    break;
                case 'b': a2.BackColor = blue;
                    break;
                case 'r': a2.BackColor = red;
                    break;
                case 'p': a2.BackColor = purpul;
                    break;
            }
Можно ли как-то оформить название класса в виде переменной?
Как видно из примера, два switch'а практически идентичны. Посему вопрос: уверен на 99% что можно как-то зациклить это добро. Может кто подсказать как это реализовать? Принимаются любые догадки. Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2013, 00:43
Ответы с готовыми решениями:

Как зациклить кусок кода?
как его зациклить чтобы он выполнялся постоянно private void...

Консольное приложение, как зациклить выполнение кода
string PathCompiler = "путь к браузеру"; string ArgCompiler =...

Не пойму кусок кода
Есть код поворота картинки на заданный угол private void button4_Click(object...

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

Перевести маленький кусок кода с VB на C#
Public Class Job Public arrivalT As Integer Public burstT As...

5
Ev_Hyper
Заблокирован
30.12.2013, 00:48 #2
Цитата Сообщение от K_F Посмотреть сообщение
Может кто подсказать как это реализовать? Принимаются любые догадки.
возможно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for(int i=0;i<n;i++){
switch (f.get(i))
            {
                case 'w': a1.BackColor = white;
                    break;
                case 'g': a1.BackColor = green;
                    break;
                case 'y': a1.BackColor = yellow;
                    break;
                case 'b': a1.BackColor = blue;
                    break;
                case 'r': a1.BackColor = red;
                    break;
                case 'p': a1.BackColor = purpul;
                    break;
            }
}
2
K_F
3 / 3 / 0
Регистрация: 02.07.2013
Сообщений: 23
30.12.2013, 03:17  [ТС] #3
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
возможно так:
Спасибо, что откликнулись, но это не совсем то что нужно. Основная проблема заключается в том, что нужно с каждым проходом цикла обрабатывать разные классы. В данном же примере свойство BackColor определяется n раз для одного элемента. В этом, собственно, и заключается главная проблема... Лично моё предположение - каким либо образом оформить имя класса в виде переменной, чтобы обращение к свойству выглядело в данном примере примерно так: ("a"+i).BackColor Возможно есть какие-либо средства для перевода строки в имя класса...
0
natrox
12 / 16 / 5
Регистрация: 13.04.2011
Сообщений: 148
30.12.2013, 05:21 #4
а почему бы не создать массив ваших а1,а2,а3... и обращаться как к элементу массива?
ну вот так примерно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for(int i=0;i<n;i++){
switch (f.get(i))
            {
                case 'w':mas[i].BackColor = white;
                    break;
                case 'g':mas[i].BackColor = green;
                    break;
                case 'y': mas[i].BackColor = yellow;
                    break;
                case 'b': mas[i].BackColor = blue;
                    break;
                case 'r': mas[i].BackColor = red;
                    break;
                case 'p': mas[i].BackColor = purpul;
                    break;
            }
}
где в mas[i] элементы будут экземплярами класса. Не уверен что так можно, но попробовать стоит я думаю
1
Spectral-Owl
576 / 554 / 155
Регистрация: 29.06.2010
Сообщений: 1,588
Завершенные тесты: 1
30.12.2013, 09:43 #5
более того, я бы сделал даже так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private Color GetColor(char value)
{
switch(value)
{
case 'w': return Colors.White;
case 'g': return Colors.Green;
case 'y': return Colors.Yellow;
case 'b': return Colors.Blue;
case 'r': return Colors.Red;
case 'p': return Colors.Purpul;
}
return Colors.Transparent;
}
 
...
for(int i=0;i<n;i++)
mas[i].BackColor = GetColor(f.get(i));
1
K_F
3 / 3 / 0
Регистрация: 02.07.2013
Сообщений: 23
30.12.2013, 17:16  [ТС] #6
Огромное спасибо всем кто откликнулся! Выручили! Сейчас попробую реализовать.
Удачи вам!
Тему можно закрывать.
0
30.12.2013, 17:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 17:16

Можно ли вытащить кусок кода из SWF
Здравствуйте форумчане! Можно ли вытащить кусок кода из SWF например какой...

Есть кусок кода, объясните что он делает
private double GetRisk(Dictionary&lt;string, double&gt; dF, double Prob) { ...

Вычислить, сколько времени работает кусок кода
Здраствуйте уважаемые. Помогите пожалуйста, мне нужно вычислить сколько времини...


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

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

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