Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 06.04.2009
Сообщений: 165
1

Самопроизвольное(?) обнуление значений в классе

20.02.2016, 12:37. Показов 502. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Помогите разобратся. В форме есть окна куда вводятся коррекции к нужным координатам. Если текстбоксы пусты или неактивны значения переменных должны менятся на "0" или "1" соответственно от того множители это или слагаемые.
Вот кусок класса:
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
31
32
class Coordinates
        {
            public Coordinates() { }
            public int X = 0;
            public int Y = 0;
            // множники
            public double mul_X = 1;
            public double mul_Y = 1;
            public double mul_XY = 1;
            // доданки
            public int summ_X = 0;
            public int summ_Y = 0;
            public int summ_XY = 0;
...
            internal double textBox_mull(string str, bool e)  // множники
            {
                double m =0;
                if (str == string.Empty || e == false)
                    return 1;
                else
                    m = double.Parse(str);
                    return m;
            }
            internal int textBox_summ(string str, bool e)  //доданки
            {
                int summ = 0;
                if (str == string.Empty || e == false)
                    return 0;
                else
                    summ = int.Parse(str);
                return summ;
            }
и кусок кода где исчесляются координаты...
Ошибок как бы нет но, когда подходит до исчесления координат alpha.X и alpha.Y - все множытели и слагаемые стают равными "0"
C#
1
2
3
4
5
6
7
8
9
10
                        alpha.mul_X = alpha.textBox_mull(textBox_multiX.Text, textBox_multiX.Enabled);
                        alpha.mul_Y = alpha.textBox_mull(textBox_multiY.Text, textBox_multiY.Enabled);
                        alpha.mul_XY = alpha.textBox_mull(textBox_multiXY.Text, textBox_multiXY.Enabled);
 
                        alpha.mul_X = alpha.textBox_summ(textBox_summX.Text, textBox_summX.Enabled);
                        alpha.mul_Y = alpha.textBox_summ(textBox_summY.Text, textBox_summY.Enabled);
                        alpha.mul_XY = alpha.textBox_summ(textBox_summXY.Text, textBox_summXY.Enabled);
 
                        alpha.X = (int)(alpha.X * alpha.mul_X * alpha.mul_XY) + alpha.summ_X + alpha.summ_XY;
                        alpha.Y = (int)(alpha.Y * alpha.mul_Y * alpha.mul_XY) + alpha.summ_Y + alpha.summ_XY;
Почему так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2016, 12:37
Ответы с готовыми решениями:

Самопроизвольное обнуление константы
Добрый день! ... const std::clock_t start = std::clock(); int res = insertionSort(p,N);...

Обнуление переменной в классе
Пишу курсач по ООП "Охота на лис". Проиграть невозможно поскольку счетчик найденных компьютером лис...

Обнуление значений ячеек
Вообщем, нужно чтобы, когда в одну ячейку вводилось значение, значения в двух других ячейках...

Обнуление значений элементов формы
Здравствуйте! У меня следующая проблема. Создана форма с классом "Form1" и дополнительный класс...

3
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
20.02.2016, 18:19 2
Для ввода чисел следует использовать NumericUpDown. Установив минимальные значения: 0 — для слагаемых и 1 — для множителей.
И ещё, класс ничего не должен знать о форме.
1
Эксперт .NET
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
20.02.2016, 18:22 3
C#
1
2
3
4
5
6
7
                        alpha.mul_X = alpha.textBox_mull(textBox_multiX.Text, textBox_multiX.Enabled);
                        alpha.mul_Y = alpha.textBox_mull(textBox_multiY.Text, textBox_multiY.Enabled);
                        alpha.mul_XY = alpha.textBox_mull(textBox_multiXY.Text, textBox_multiXY.Enabled);
 
                        alpha.mul_X = alpha.textBox_summ(textBox_summX.Text, textBox_summX.Enabled);
                        alpha.mul_Y = alpha.textBox_summ(textBox_summY.Text, textBox_summY.Enabled);
                        alpha.mul_XY = alpha.textBox_summ(textBox_summXY.Text, textBox_summXY.Enabled);
Какой смысл присваивать значени одним и тем же полям? Первая часть кода не имеет смысла, т.к. вторая перезаписывает значения.
1
3 / 3 / 1
Регистрация: 06.04.2009
Сообщений: 165
20.02.2016, 21:53  [ТС] 4
Цитата Сообщение от Someone007 Посмотреть сообщение
Какой смысл присваивать значени одним и тем же полям? Первая часть кода не имеет смысла, т.к. вторая перезаписывает значения.
Спасибо! Незаметил. Вот что значит уставшим ночью писать =)
0
20.02.2016, 21:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2016, 21:53
Помогаю со студенческими работами здесь

Обнуление всех значений в Dictionary
Столкнулся со странной особенностью этого типа коллекций. Не дает менять значения в цикле:...

Поиск параметров в реестре и обнуление значений
Приветы! Суть в том,что необходимо все строки в тексте начинающиеся с "Имя заменить на ...

Нежелательное обнуление счётчика в цикле при достижении значений 4077, 8157. Последовательный порт. Метод Read()
Доброго времени суток! Читаю порт в цикле по три байта, все отлично. Нужно выводить номера...

Проверка значений в классе
class Money { public int rubles; public int kopeks; public...


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

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