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

Дайте совет при написании кода

03.04.2023, 18:36. Показов 1418. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу в общем калькулятор на формах и начал его рефакторить по принципам SOLID&ООП.
Пробую избавляться от привычки делать класс-бог, который знает все, пробую все разделить по полочкам.
И так:
1. Я создал класс, который занимается сугубо математическими операциями...
2. Я создал интерфейс, в котором предопределены методы, от которого я унаследовался
Вот они:
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
    class Calculation : MathOperations
    {
        public void AddingCommaToNumber(TextBox textBox)
        {
            if (!textBox.Text.Contains(","))
                textBox.Text += ",";
        }
 
        public void ChangeSignBeforeNumber(TextBox textBox)
        {
            double result;
            double signNum = double.Parse(textBox.Text);
 
            result = -signNum;
            textBox.Text = result.ToString();
        }
 
        /*Тут типа методы, но я удалил, чтобы не засирать вопрос*/
    }
 
    public interface MathOperations // Знаю, что надо ЯВНО указывать модификатор доступа, но тут почему-то студия кидает ошибку по версии...
    {
        void ChangeSignBeforeNumber(TextBox textBox);
        void AddingCommaToNumber(TextBox textBox);
        void InverseFractionNumbers(TextBox textBox);
        void RaisingNumberToTheSecondPower(TextBox textBox);
        void SquareRootOfNumber(TextBox textBox);
        void DeleteLastInNumberSymbol(TextBox textBox);
    }
Далее у меня уже основной класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public partial class Form1 : Form
    {
        private Calculation calculation;
 
        public Form1()
        {
            InitializeComponent();
            calculation = new Calculation();
        }
 
       /*Лирика*/
 
        private void ChangeSignBeforeNumberButton_Click(object sender, EventArgs e) // Изменение знака 
        {
            calculation.ChangeSignBeforeNumber(textBox1);
        }
 
        private void AddingCommaToNumberButton_Click(object sender, EventArgs e) // Добавление запятой
        {
            calculation.AddingCommaToNumber(textBox1);
        }
 
    }
Поясню. Я попробовал создать экземпляр класса в родительском классе и передать его в конструктор, чтобы постоянно не писать так, создавая постоянно объекты класса
C#
1
2
3
4
        private void AddingCommaToNumberButton_Click(object sender, EventArgs e) // Добавление запятой
        {
            new Calculation().AddingCommaToNumber(textBox1);
        }
Прошу Вас, форумчане дать напутствия:
1. Правильно ли именую поля и методы?
2. Правильно ли поступил, что распределил все вот так?
Готов к критике. Постягаю азы шарпа
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2023, 18:36
Ответы с готовыми решениями:

Ошибка, которая возникла при написании кода
Программа не содержит статического метода ''main'' подходящего для точки входа. Только недавно начал изучать C# и даже не понимаю, что...

При написании кода F11-получаю нужный результат, а F5- нет
Здравствуйте! Столкнулся с такой проблемой: пишу программу генератор паролей, и при проверке его работы в отладчике пошагово-результат...

Предупреждения при написании кода.
На каждой строке типа: comand.Parameters.Add("@Assmnt_ID", Assmnt_ID); студия пишет предупреждение. Чем это грозит, как от этого...

21
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
03.04.2023, 20:58
Лучший ответ Сообщение было отмечено contempio как решение

Решение

Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Diamante Посмотреть сообщение
целочисленное деление
Лекция для колхозников же. Какая тут разница, е-мое

Добавлено через 1 минуту
P.S. забыл я про возврат double вообще, ибо 10 дел делаю одновременно.

Добавлено через 8 минут
Цитата Сообщение от contempio Посмотреть сообщение
Попробовал сделать так...
Сойдет
1
1 / 1 / 0
Регистрация: 28.03.2023
Сообщений: 52
03.04.2023, 21:09  [ТС]
wizard41, Спасибо! try harder!

Добавлено через 8 минут
wizard41, получить одобрение от вас было очень приятно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2023, 21:09

Дайте совет в написании кода
Задание про подпрограммы, функции. vba Не получается написать код. Помогите с написанием программы, дайте совет. Для...

Дайте совет в написании кода для простецкой задачки
Всем доброго времени суток. У меня проблема с составлением кода и блок-схемы к задачам в VB. Дело в том,что у нас на первом курсе...

Есть ли возможность скрыть часть кода одним символом при написании кода?
Мне интересно есть ли возможность скрыть часть кода программы от его копирования(от конкурентов допустим), чтобы при просмотре человек не...

Ошибка при написании кода
В общем ближе к делу, есть поект в нем 3 юнита, в третьем юните у меня объявлены глобальные переменные(на скрине видно). Пытаюсь...

Ошибка при написании кода
Добрый день! При написании кода в Xcode почему-то выдаётся ошибка, никак не могу понять, что не так. Ошибка появляется в этих строках ...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru