AleVerDes
@AleVerDes

Разбить проект на несколько файлов?

Здравствуйте.


Использую SFML.NET и, соответственно, C#. Возник вопрос — возможно ли вынести некие методы и переменные в отдельные файлы? К примеру, у меня есть методы gameInit() и gameDraw(), а также переменная username, которая задается в Program.cs при запуске программы. Могу ли я вынесли эти методы в отдельные файлы, а переменную сделать глобальной?


На выходе я должен иметь возможность вызывать в Program.cs методы простым gameInit'ом, а к переменной username иметь доступ на чтение и запись из любого элемента проекта — будь то главный файл проекта или файл с математическими функциям.


Google выдает лишь некий partial class, который, по-ходу, нельзя разбрасывать на несколько файлов, а также категоричный ответ, что создание глобальных переменных и методов в C# нет.


Прошу помощи здесь, ибо последний оплот.
  • Вопрос задан
  • 10461 просмотр
Решения вопроса 1
Illivion
@Illivion
возможно ли вынести некие методы и переменные в отдельные файлы? К примеру, у меня есть методы gameInit() и gameDraw(), <...>. Могу ли я вынесли эти методы в отдельные файлы<...>?

Partial класс это что надо для вашего запроса.

Можно создать 2 файла: Program.Main.cs и Program.Game.cs (названия могут быть любыми) а внутри разместить partial-класс:

Program.Main:

static partial class Program
{
    static void Main() 
    {
        GameInit();
        GameDraw();
    }
}


Program.Game:

static partial class Program
{
    static void GameInit()
    {
        // Game init here
    }
    static void GameDraw()
    {
        // Game draw here
    }
}


а переменную сделать глобальной

Самая глобальная! :)

static partial class Program
{
    public static String Username;
}


Обращаться к ней можно откуда угодно как:

var username = Program.Username;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Глобальных переменных и методов в c# нет. Можете сделать статический (или обычный) класс и разместить в нём статическое поле(свойство) и статические методы. Получится примерно то что нужно.

Партиал всего лишь позволяет разместить описание класса в нескольких файлах для удобства.

Вообще в c# все классы, ничего вне класса (структуры) создать нельзя. Т.е. глобальных переменных и методов нет. Но статический метод и статическое поле (свойство) это примерно то, что вам нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы