Си шарп с нуля

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Sergej Šugajev
  • Звание: Делегатор
  • Накопленный опыт: 280 часов
  • Баланс Мегахешей: собрано 9 Mh, потрачено 0 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2022-04-28 23:20:30
  • Возраст: 45 лет

Видеокурсы

Дата активности Видеокурс Прогресс
2019-01-02 github Система Git 1 из 16 10 %
2018-04-28 design-factory Factory все 11 100 %
2018-04-19 design-singleton Singleton все 22 100 %
2018-03-26 fruits ООФрукты 8 из 30 27 %
2018-03-16 java-sqlite База SQLite все 5 100 %
2018-02-14 java-list JD. Коллекции все 5 100 %
2018-02-03 java-chess JB. Шахматные классы все 6 100 %
2018-02-02 java-class JA. Классные пакеты 17 из 18 95 %
2018-01-25 soft0 Демо софт 3 из 8 43 %
2018-01-17 game0 Демо игры 1 из 10 10 %
2018-01-09 java-for2d JC. Явные графоциклы все 11 100 %
2018-01-05 java-array J9. Массивы все 3 100 %
2017-12-09 java-loop J8. Циклопы все 10 100 %
2017-11-27 java-egz J7. Экзамен все 5 125 %
2017-11-24 java-if J6. Условия все 8 115 %
2017-11-22 java-type J4. Типы все 4 100 %
2017-11-20 java-start J1. Запуск все 4 100 %
2017-11-18 java-read J3. Ввод все 10 100 %
2017-11-18 java-write J2. Печать все 3 100 %
2017-11-15 java-oper J5. Операции все 7 100 %
2017-10-20 xonix Game Xonix 1 из 37 5 %
Итого: 145 из 233 63 %

Консольные задачи

Дата активности Консольный раздел Прогресс
2020-10-06 jawa Потоки 2 из 8 25 %
2018-11-09 jawa LOOP - Циклы 10 из 8 125 %
2018-02-14 jawa Задачи 3 из 0 %
2018-02-13 task1 Семантика все 6 100 %
2018-02-07 jawa Коллекции все 3 100 %
2017-12-23 solo Java - Ввод данных все 6 100 %
2017-12-23 solo Java - Вывод данных все 7 100 %
2017-12-23 solo Java - Условия все 7 100 %
2017-12-23 solo Java - Циклы все 2 100 %
2017-12-22 solo Java - Запуск все 13 100 %
2017-12-09 jawa Сумматоры 9 из 0 %
2017-10-31 jawa IF - Условия все 18 100 %
2017-10-30 jawa OPER - Формулы 6 из 9 67 %
2017-10-29 jawa WRITE - Вывод данных все 11 100 %
2017-10-29 jawa READ - Ввод данных все 10 100 %
2017-10-29 jawa TYPE - Шесть типов все 7 100 %
2017-10-29 jawa START - Запуск все 1 100 %
Итого: 121 из 116 105 %
Сохранить страницу:

16017. --
Sergej Šugajev
Sergej Šugajev
ответить
/ 2019-01-03 23:49

Хотелось бы серьезно,  но что-то не то времени, не то мотивации маловато. А по поводу GIT такое подозрение, что я что-то упустил при обучении ;-)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # Система Git / Добро пожаловать в Зоопарк! / 2019-01-03 13:13

Какие люди, Сергей!
С возвращением.
Если собираешься серьёзно заниматься - напиши.


20619. --
Артём Нагорный
Артём Нагорный
ответить
→  Sergej Šugajev  # Система Git / Добро пожаловать в Зоопарк! / 2019-01-02 22:18

Git очень полезный инструмент при работе в команде, позволяет отследить все действия людей, которые участвовали в проекте :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 2. Factory / Factory - Shapes - Interfactory / 2018-04-20 22:16

молодец


16066. --
Bodrik_torf
Bodrik_torf
ответить
→  Sergej Šugajev   / 2018-04-19 22:25

спасибо за совет


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Bodrik_torf  # Система Git / Checkout / 2018-04-19 20:43

Если сложно работать с Git через консоль, то можно скачать надстройку tortoisegit.org/ - это черепаха для работы с Git. Появляется возможность посмотреть все тоже самое в графической среде. И увидеть сразу все возможности, которых очень много.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Povilas Abramovicius  # 2. Factory / Factory - Storage - Файл и Сканер / 2018-04-12 00:51

───▄▄▄
─▄▀░▄░▀▄
─█░█▄▀░█
─█░▀▄▄▀█▄█▄▀
▄▄█▄▄▄▄███▀


17629. --
Юрий Караваев
Юрий Караваев
ответить
→  Sergej Šugajev  # Демо игры / Лабиринт 2D - меню / 2018-04-06 20:07

Нет я ее сам поставил


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Юрий Караваев  # Демо игры / Лабиринт 2D - меню / 2018-04-02 14:41

Ого. Эта картинка лабиринта генерируется кодом?


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Povilas Abramovicius  # 1. Singleton / Singleton - Timer - Experiment / 2018-03-27 15:05

──────────────████──████────────────
────────────██░░▒▒██░░▒▒██──────────
──────────██░░────────▒▒▓▓██────────
──────────██──██──██────▓▓████████──
──────────██──██──██──────██░░░░▒▒██
──────██████──────────────████▒▒▓▓██
────██░░░░░░██──▓▓──────▓▓░░░░██████
──██░░────░░░░▓▓░░▓▓▓▓▓▓░░──░░▒▒██░░
──████──██░░░░░░▒▒░░──────░░░░▒▒██▒▒
██░░░░░░░░░░░░░░▒▒▒▒────────▒▒▓▓██▓▓
██░░░░░░░░░░░░▒▒▒▒▓▓────────▒▒▓▓████
██▒▒░░░░░░▒▒▒▒▒▒▓▓██░░────░░▓▓▓▓████
██▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓████░░░░▓▓▓▓██▒▒██
──██▒▒▒▒▒▒▓▓▓▓▓▓▓▓██──░░▓▓▓▓██████──
────████▓▓▓▓▓▓▓▓██──░░▒▒▒▒▓▓██▒▒██──
────────████████████▒▒▒▒▒▒▒▒▓▓██────
────────██▒▒──▒▒██░░░░▒▒──────██────
────████▒▒▒▒▒▒████░░░░██──────██────
██████──██████──██░░░░████────██────
██░░▒▒██──────████░░░░░░████──██────
██──▓▓▒▒████████▒▒░░░░██░░████──────
██────▓▓▒▒░░░░██▒▒░░────░░██████────
──██░░────▒▒▒▒██▓▓▒▒░░░░░░██████────
──██░░░░──────░░██▓▓▒▒░░████░░██────
────████████████░░██████▒▒████──────
────██▓▓▒▒░░░░██▒▒▒▒██████──────────
────██▓▓▒▒░░░░██████░░██████────────
──██▓▓▓▓▓▓▒▒──░░██▓▓▒▒░░░░──██──────
──██▓▓▓▓▒▒░░░░░░██▓▓▓▓▒▒▒▒░░██──────
──████████████████████████████──────


1. --
Евгений Волосатов
Евгений Волосатов
ответить

16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Povilas Abramovicius  # База SQLite / SQLite - Знакомство / 2018-03-23 00:23

╔═╦══╦══╦══╦═╦═╦╦══╦╗
║╔╣║║║║║║║║║═╣║║╠╗╔╣║
║╚╣║║║║║║║║║═╣║║║║║╠╣
╚═╩══╩╩╩╩╩╩╩═╩╩═╝╚╝╚╝


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  LINKI  # Демо софт / Квадратный калейдоскоп / 2018-03-23 00:21

Эти картинки двигаются? (ого)


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Povilas Abramovicius  # 1. Singleton / Singleton - Config - FileReader / 2018-03-23 00:18

▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▓▒▒▓▒▒▒▒
▒▒▒▒▓▒▒▓▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒
▒▓▒▒▒▒▒▒▒▒▓▒
▒▒▓▓▓▓▓▓▓▓▒▒
▒▒▒▒▒▒▒▒▒▒▒▒


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Povilas Abramovicius  # 1. Singleton / Singleton - Config - Class / 2018-03-22 19:41

░░░░░░░░░░░░▄▄
░░░░░░░░░░░█░░█
░░░░░░░░░░░█░░█
░░░░░░░░░░█░░░█
░░░░░░░░░█░░░░█
███████▄▄█░░░░░██████▄
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█░░░░░░░░░░░░░░█
▓▓▓▓▓▓█████░░░░░░░░░█
██████▀░░░░▀▀██████▀


16018. --
Andrej Gladkov
Andrej Gladkov
ответить
→  Sergej Šugajev  # Система Git / Diff / 2018-03-21 20:45

Поздравляю с успешным освоением системы Git! осталось теперь создать репозиторий на сайте github.com и ты сможешь делиться своими проектами со своими однокурсниками. С наилучшими пожеланиями, я.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# База SQLite / SQLite - Insert / 2018-03-16 17:48

Сейчас есть драйвер для подключение к базе sqlite-jdbc-3.21.0.jar - но, я использовал sqlite-jdbc-3.8.7.jar - и как понял по ошибкам в подключении, ниже этой версии уже использовать нет смысла, они не работают с базой. Хотелось найти минимальный размер драйвера и функциональность чтоб была.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Система Git / Deleted / 2018-03-16 13:51

Я уже видел этот урок на трех реализациях. Так что думаю, что под любую платформу. Тут главное чтобы сами инструменты были под эту платформу. Java. Git.


9913. --
vip
vip
ответить
→  Sergej Šugajev  # Система Git / Deleted / 2018-03-16 10:50

Вот интересно прохождение этого урока можно под любой unix подобной системой запускать или все-таки на том что оговоре.


791. --
Валерий Жданов
Валерий Жданов
ответить
→  Sergej Šugajev  # Система Git / Установка / 2018-03-16 00:27

Отлично!


791. --
Валерий Жданов
Валерий Жданов
ответить
→  Sergej Šugajev  # Система Git / Суть аналогии / 2018-03-16 00:27

в принципе верно, хотя система управления версиями ушла дальше


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / Коллекции / Апрельские дни / 2018-02-07 00:57

Нда... моя реализация очень странная на фоне правильной через Enum


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Демо софт / Английские карточки / 2018-01-26 22:43

Так я не разобрался. Не знаю, как модуль подключить для проигрывания. У меня его нету вообще. Windows Media Player


11353. --
AlliZzeN
AlliZzeN
ответить
→  Sergej Šugajev  # Демо софт / Английские карточки / 2018-01-25 20:04

Отлично, молодец что разобрался


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # Демо софт / Английские карточки / 2018-01-25 18:07

Любишь ты искать сложные решения...


8275. --
Tekashnik
Tekashnik
ответить
→  Sergej Šugajev  # Демо софт / Английские карточки / 2018-01-25 16:05

Программирование - это поиск путей решения поставленных задач, их может быть миллион)) Чем чаще ты будешь видеть более оптимальные решения нежели предлагает твой учитель тем больше будет уровень твоего мастерства в каком то вопросе. В этом плание мне очень нравятся олимпиадные задания, которые критичны ко времени выполнения)))


4814. --
Дмитрий
Дмитрий
ответить
→  Sergej Šugajev  # Демо софт / Двенадцать месяцев / 2018-01-19 11:36

Отличная картинка!


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
→  Евгений Волосатов   / 2018-01-17 21:31

Спасибо!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # Демо софт / Вступительное слово / 2018-01-17 16:52

В добрый путь, Сергей!


4814. --
Дмитрий
Дмитрий
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 12. Явные графоциклы / FOR2D - Тройные фары / 2018-01-10 00:33

Отлично сработано.


16533. --
Андрей Шевченко
Андрей Шевченко
ответить
→  Sergej Šugajev  # 12. Явные графоциклы / FOR2D - Разноцветные лучи / 2018-01-09 15:54

Красиво получилось


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Sergej Šugajev  # 12. Явные графоциклы / FOR2D - Солнечный круг / 2018-01-06 00:13

Увидеть бы это условие.


16533. --
Андрей Шевченко
Андрей Шевченко
ответить
→  Sergej Šugajev  # 12. Явные графоциклы / FOR2D - Солнечный круг / 2018-01-06 00:11

красиво получается


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# 8. Циклопы / LOOP - Цикл for/each / 2017-12-09 10:55

Понятно.. это пример, чтобы весь код был виден.


3922. --
Александр
Александр
ответить
→  Sergej Šugajev  # 8. Циклопы / LOOP - Цикл for/each / 2017-12-09 10:36

В Java принято переносить строки...


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 8. Циклопы / LOOP - Блок-схема цикла FOR / 2017-12-05 00:36

Молодцом, Сергей!


16017. --
Sergej Šugajev
Sergej Šugajev
ответить

7119. --
Новопашин Владимир
Новопашин Владимир
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить

16017. --
Sergej Šugajev
Sergej Šugajev
ответить
/ 2017-11-26 21:02

Да, это точно, но я потом уже подумал, что можно было бы по другому.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 7. Экзамен / EGZ - Зачётная задача № 2 / 2017-11-26 12:19

Короче записать a*a, чем Math.pow (a, 2).
И надёжнее.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# 7. Экзамен / EGZ - Зачётная задача № 1 / 2017-11-25 01:00

Все дело в повторении и шлифовке


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 7. Экзамен / EGZ - Зачётная задача № 1 / 2017-11-25 00:56

Хорошо сделал, молодец.


11589. --
Yefim
Yefim
ответить
→  Sergej Šugajev  # 12. Явные графоциклы / FOR2D - Линия и Круг / 2017-11-24 10:31

Молодец, Сергей!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 4. Типы / TYPE - Непримитивный тип String / 2017-11-23 10:09

Сергей, очень хорошо поработал. Молодец


16089. --
Povilas Abramovicius
Povilas Abramovicius
ответить
→  Sergej Šugajev  # 6. Условия / IF - Минимакс / 2017-11-21 20:58

Прикольно!


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# 1. Запуск / START - Десять запусков / 2017-11-20 16:26

Ясно. Исправлю и сделаю по другому.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Sergej Šugajev  # 1. Запуск / START - Десять запусков / 2017-11-19 17:26

и ещё, даже первый раз не вижу, чтобы ты сделал это изначально, вряд ли бы у тебя ушло 5 сек на это. Сделай так как требует задание.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Sergej Šugajev  # 1. Запуск / START - Десять запусков / 2017-11-19 17:25

А что не ясного в первой строчке задания?
"10 раз создать, откомпилировать и запустить программу на Java."
по-моему тут всё предельно ясно.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 1. Запуск / START - Десять запусков / 2017-11-19 14:24

Прикол в том, что это всё надо было делать с начала до конца - удаляя файл в конце каждой части.
И создавая и набирая его заново, не использя буфер обмена, историю в командной строки,
так как консольное окно тоже надо закрывать. всё должно было выполнятся точно по инструкции из прошлого урока, от 1 до последнего пункта.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 3. Ввод / READ - Любая формула / 2017-11-19 14:20

Очень хорошо


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# 1. Запуск / START - Десять запусков / 2017-11-18 14:45

Выходит что так, я наверно суть упражнения не понял.


4814. --
Дмитрий
Дмитрий
ответить
→  Sergej Šugajev  # 1. Запуск / START - Десять запусков / 2017-11-18 06:30

За 1 минуту все сделал?


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# 3. Ввод / READ - Буферный чтец / 2017-11-18 01:33

А как сделать, чтобы читать из файла и если нет файла с клавиатуры брать данные? Вариант такой выдает ошибку, так как буфер уже создан  >->  BufferedReader br = new BufferedReader (isr); if (args.length == 0) { BufferedReader br = new BufferedReader (fr); }  <-<


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 3. Ввод / READ - Ввод трёхзначного числа / 2017-11-16 11:21

Хорошо идёшь!


7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Sergej Šugajev  # 5. Операции / OPER - Операции 5-6 / 2017-11-16 06:19

Не стоит злоупотреблять тернарниками. Код читается в 10 раз больше, чем пишется. И прочитать if глазу гораздо быстрее, если нагородить кучу тернарников.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # 5. Операции / OPER - Операции 4 / 2017-11-14 22:20

Сделай по-своему.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # Консоль / READ - Ввод данных / Ввод символа / 2017-11-06 18:12

Ну как же не сказано?
Ты видео под этим уроком смотрел?
Там всё подробно рассказывается.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / IF - Условия / Наибольшее при условии / 2017-10-31 13:47

Я никак не мог понять суть задачи. Поэтому долго не мог понять почему мой код не работает. Оказалось, надо найти не большее число из всех чисел, а больше число из чисел, которые меньше числа a. И если такого нет, писать ошибку.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / IF - Условия / Максимум / 2017-10-30 22:11

// вариант более короткий
//www.VideoSharp.info/Java/IF - Условия/Максимум
import java.util.Scanner;
public class Program
{
    public static void main (String [] args)
    {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int min = (a <= b) ? a : b;
        int max;
        if (a >= b) max = a; else max = b;
        System.out.format("%d%n%d%n", min, max);
    }
}


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / TYPE - Шесть типов / Вещественные числа / 2017-10-29 21:08

Оказалось в формате надо не %f , а %s вписывать.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / TYPE - Шесть типов / Целые числа / 2017-10-29 20:21

Функция format мне все больше и больше нравится.


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / READ - Ввод данных / С днём рождения! / 2017-10-29 20:06

Что-то с данными возраста намудренно =) как строку читать не выходит (третий тест не пройдет).


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / READ - Ввод данных / Таблица учеников / 2017-10-29 19:55

// более короткий вариант
import java.util.Scanner;
public class Program
{
    public static void main (String [] args)
    {
        Scanner sc = new Scanner (System.in);
       
        System.out.println ("+---+----------------------+---------+");
        System.out.println ("| № | Фамилия Имя          | Возраст |");
        System.out.println ("+---+----------------------+---------+");
        int year = sc.nextInt();
        for (int i=1; i<=3; i++) {
            int idy = sc.nextInt(); // year
            String idn = sc.next(); // name
            String ids = sc.next(); // surn
            System.out.format ("| %d | %-20s | %7d |%n", i, ids+" "+idn, year-idy);
        }
        System.out.println ("+---+----------------------+---------+");
    }
}


16017. --
Sergej Šugajev
Sergej Šugajev
ответить
# Консоль / READ - Ввод данных / Ввод символа / 2017-10-29 18:28

Плохо. Очень много потратил время. Код отказывался выполняться с ошибкой. Пока не добавил try{} catch{} , хотя про эти команды ничего не сказано.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Sergej Šugajev  # 2. Печать / WRITE - Квадратные условия / 2017-10-21 13:01

Молодец, удачи в дальнейшем.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Sergej Šugajev  # Game Xonix / Поиграем? / 2017-10-20 22:29

Оформление там нормальное, просто в редакторе открывается некорректно.


  • Звание: Делегатор
  • Накопленный опыт: 280 часов
  • Собранный капитал: нет

Клуб формулистов

Правила клуба формулистов

У каждого формулиста есть задача минимум на каждый день:
+ зайти на сайт, проверить один отчёт, получить 1 байт.
Задача максимум - выполнить все остальные ежедневные задачи.
Нажмите здесь чтобы перейти к ежедневному чек-листу.

В 24:00 МСК накопленные за сутки байты переносятся в недельный актив.
В воскресение 24:00 МСК все накопленные байты переходят на баланс формулиста.

Собранные байты можно обменивать на доступные видеокурсы (1 байт = 1 рубль, без скидок)
Приобретённые за байты видеокурсы доступны только во время нахождения в автобусе/клубе формулистов!

При завершении подписки в автобусе/клубе формулистов все накопленные байты обнуляются, а доступ к видеокурсам, приобретённым за байты, закрывается.
Продлевайте подписку заблаговременно.

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: В поисках идеального кода пришли к выводу что делать отдельные над классы для Singtona не имеет смысла, код проще и понятней не становится и лучше реализацию оставлять в самом классе и не выносить отдельно. Откат всех изменений через Git



Научился: Если вам нужен класс с полной объектно-ориентированной совместимостью, выберите синглтон, а если вам нужно просто хранить кучу статических методов вместе, тогда используйте статические классы. Основная разница между Singleton и Static Class в том, что один из них представляет собой объект, в то время как другой представляет собой метод.