Может ли C # запускать код до или после main как в цели C - PullRequest
2 голосов
/ 07 ноября 2010

http://gcc.gnu.org/onlinedocs/gcc-2.95.3/objc-features_1.html#SEC2

Среда выполнения GNU Objective-C предоставляет способ, позволяющий вам выполнить код до того, как выполнение программы войдет в основную функцию.Код выполняется для каждого класса и для каждой категории с помощью специального метода класса + load.

Обновление: ответы, которые я прочитал ниже, не являются удовлетворительными.Нет ничего особенного для вызова функции из основной программы.Вопрос в том, чтобы подключить СИСТЕМУ, то есть СИСТЕМА вызывает функцию без ВАШЕЙ ПРОГРАММЫ, даже не подозревая об этом в RUNTIME.

Вместо Objective C см. Эту статью на Visual C ++ (спасибо парню stackoverflow, который ответил на мой предыдущий вопрос): http://www.codeguru.com/cpp/misc/misc/threadsprocesses/article.php/c6945

В противном случае не было необходимости в Objective C Runtime для включения этой нагрузкиметод.Конечно, главная точка входа существует для программы Objective C, и если достаточно просто вызвать статический метод ВНУТРИ основного метода, нет ничего сложного:)

Ответы [ 2 ]

6 голосов
/ 07 ноября 2010

В языках ООП, поскольку main всегда находится внутри класса, всегда есть способ запустить некоторый код перед выполнением функции main. В Java это называется статический блок инициализации . Аналогичный механизм также доступен в C #. Смотрите эту ссылку

Пример кода:

namespace CSharpConsoleTest
{
  class Program
  {
    static Program()
    {
        Console.WriteLine("Test123");
    }

    static void Main(string[] args)
    {
        Console.WriteLine("Test111");
    }
  }
}

Суть в том, чтобы иметь возможность инициализировать статические переменные внутри класса, поскольку они создаются до переменных экземпляра.

0 голосов
/ 07 ноября 2010

То, что вы ищете в c #, называется конструкторами классов (выполняется до) и деструкторами классов (выполняется после)

Вот ссылка на учебник ...

http://csharp.net -tutorials.com / классы / конструкторы-и-деструкторов /

...