Q:

Каким образом можно вынести описание функции в отдельный файл?

У меня есть длинные функции, которые, для удобства, хочется разместить в отдельных файлах.
Как правильно должен составляться такой файл? Насколько понимаю, требуется расширять класс Program или что-то в этом роде. Но как именно?
На всякий случай упомяну, что мне нужна, просто, функция, не связанная ни с какими классами.

A:

Согласен с @DreamChild, что при нормальном написании кода потребности в таких странностях обычно не возникает, но если уж очень хочется, то можно использовать partial:
В одном файле:
public partial class TestApp
{
    public static void Main()
    {
        Console.WriteLine(TestMethod());
        Console.ReadKey();
    }
}

в другом:
public partial class TestApp
{
    public static string TestMethod()
    {
        return "!!!";
    }
}

A:

На всякий случай упомяну, что мне нужна, просто, функция, не связанная ни с какими классами

Такое в C# невозможно. Это полностью объектно-ориентированный язык, и функции (точнее, методы - в C# нет понятия "функция") могут находиться только в составе класса. Класс, впрочем, может быть статическим и по сути являться пространством имен для методов, однако методов без класса в шарпе быть не может.

