15 / 11 / 5
Регистрация: 20.03.2014
Сообщений: 164

Вынести функцию в отдельный файл. Настроить связь

08.06.2018, 13:24. Показов 10107. Ответов 3
Метки нет (Все метки)

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

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
 
namespace Game_3._1
{
    class Program
    {
        static void Main(string[] args)
        {
            int P1 = 0, P2 = 0; // набранные очки игроками в текущем гейме
            string WinPoint; // кто выиграл текущее очко
 
            for (; ; )
            {
                if (P1 == 4 || P2 == 4 || P1 == 3 & P2 == 3) break;
 
                Console.WriteLine("Счёт " + P1 + "-" + P2);
                Console.WriteLine();
                Console.WriteLine("Для выигрыша 1-го игрока остолось...");
                Console.WriteLine("Для выигрыша 2-го игрока остолось...");
 
                RozP();
            }
 
            for (; ; ) // после счёта 40-40 (3-3)
            {
                if (P2 <= P1 - 2 || P1 <= P2 - 2) break;
 
                Console.WriteLine("Счёт после 40-40 " + P1 + "-" + P2);
                Console.WriteLine();
                Console.WriteLine("Для выигрыша 1-го игрока остолось...");
                Console.WriteLine("Для выигрыша 2-го игрока остолось...");
 
                RozP();
 
            }
 
            Console.WriteLine("Окончательный счёт {0} - {1}. Спасибо за внимание!", P1, P2);
 
            Console.ReadKey();
 
            void RozP() // выбор игрока выигрывшего текущее очко
            {
                for (; ; )
                {
                    Console.WriteLine();
                    Console.WriteLine("Выбери, кто выиграл текущее очко?");
                    Console.WriteLine("1 - первый игрок, 2 - второй игрок, 7 - откат очка");
                    WinPoint = Console.ReadLine();
                    if (WinPoint == "1") P1++;
                    else if (WinPoint == "2") P2++;
                    else continue;
                    Console.WriteLine();
                    break;
                }
            }
        }
    }
}


Хочу функцию RozP вынести в отдельный файл. Как правильно-лучше это сделать?


Добавлено через 2 минуты
Мне интересен сам процесс разделения кода на части.
У меня получилось так, я писал отдельные модули для программы, сейчас их 5.
А теперь не знаю как всё это соединить воедино.

Очевидно что каких знаний у меня не хватает, направьте, пожалуйста, на путь истинный =).
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2018, 13:24
Ответы с готовыми решениями:

Можно ли вынести класс в отдельный файл
Можно ли вынести класс в отдельный файл? А потом его подключить, а то у меня получается жуткая неразбириха Заголовок продумываем

Можно ли вынести xml-комментарии в отдельный файл
Хочу писать xml-комментарии к своему коду, не только потому что можно потом документацию генерировать, но и это просто приятно, когда...

Как вынести описание переменных и функций в отдельный файл?
Доброго времени суток, форумчане! Во многих библиотеках, заметил, что рядом с DLL присутствует файл с разрешением XML, в котором...

3
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
08.06.2018, 14:05
Лучший ответ Сообщение было отмечено KPFU как решение

Решение

KPFU, в C# функции не могут существовать отдельно от класса в отличии от C++, допустим.
Так что вам нужно создать класс, ответственный за что-то одно (Single Responsibility Principle), желательно сохранить его в отдельном файле, а потом использовать экземпляры этого класса где это необходимо.
1
15 / 11 / 5
Регистрация: 20.03.2014
Сообщений: 164
08.06.2018, 16:44  [ТС]
Цитата Сообщение от VladPVS Посмотреть сообщение
KPFU, в C# функции не могут существовать отдельно от класса в отличии от C++, допустим.
Так что вам нужно создать класс, ответственный за что-то одно (Single Responsibility Principle), желательно сохранить его в отдельном файле, а потом использовать экземпляры этого класса где это необходимо.

А что ещё можно "поместить" в отдельный файл кроме класса?
0
189 / 166 / 101
Регистрация: 14.03.2018
Сообщений: 426
08.06.2018, 16:51
Можно, например, структуру, перечисление, интерфейс.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2018, 16:51
Помогаю со студенческими работами здесь

Как вынести класс в отдельный файл сочетаниями клавиш
Подскажите, в vs как вынести класс в отдельный файл сочетанием клавиш?

Вынести текст запросов SQL из кода C# в отдельный файл с сохранением имен таблиц, определённых в коде
Делаю парсинг файлов и вставляю результаты в БД SQLite. Сейчас текст запросов SQL по созданию таблиц и индексов я определяю в переменной...

Вынести в отдельный метод работу с токеном Vk
Приветствую всех. Изучаю C# 4 день и решил написать программу под vk Все хорошо , есть представления как реализовать задумка. ...

Вынести метод из класса MainForm в отдельный класс
Доброго времени суток! У меня в основном классе MainForm, имеется метод private void PopulateDataSet(), который заполняет моими...

Как вынести в отдельный класс блок try . catch
Проблема следующая: на сервере есть много сервисов. Моя задача - перехватывать и обрабатывать ошибки этих сервисов. Обработка ошибок...


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

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

Новые блоги и статьи
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru