http://gcc.gnu.org/onlinedocs/gcc-2.95.3/objc-features_1.html#SEC2
GNU Objective-C 运行时提供了一种方法,允许您在程序执行进入主函数之前执行代码。该代码通过特殊的类方法 +load 在每个类和每个类别的基础上执行。
更新:我在下面读到的答案并不令人满意。从主程序调用函数没有什么特别的。问题是关于 HOOKING 系统,即系统在运行时调用一个函数,而您的程序甚至不知道它。
不要使用 Objective C,请参阅有关 Visual C++ 的这篇文章(感谢回答我之前问题的 stackoverflow 人员): http://www.codeguru.com/cpp/misc/misc/threadsprocesses/article.php/c6945
否则 Objective C Runtime 就不需要包含这个加载方法。 Objective C 程序当然存在主入口点,如果只需在主方法中调用静态方法就足够了,那就没什么大不了的:)
最佳答案
在 OOP 语言中,由于 main 始终位于类内部,因此总有一种方法可以在执行 main 函数之前运行一些代码。在Java中它被称为static initialization block 。 C# 中也提供类似的机制。 See this link
代码示例:
namespace CSharpConsoleTest
{
class Program
{
static Program()
{
Console.WriteLine("Test123");
}
static void Main(string[] args)
{
Console.WriteLine("Test111");
}
}
}
重点是能够在类内部初始化静态变量,因为它们是在实例变量之前创建的。
关于c# - C# 可以像 Objective C 一样在 main 之前或之后运行代码吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4116098/