C# C可以像在目标C中一样在main之前或之后运行代码吗

C# C可以像在目标C中一样在main之前或之后运行代码吗,c#,objective-c,static-methods,C#,Objective C,Static Methods,GNU Objective-C运行时提供了一种方法,允许您在程序执行进入主函数之前执行代码。代码通过一个特殊的类方法+加载在每个类和每个类别的基础上执行 更新:我在下面看到的答案并不令人满意。从主程序调用函数没有什么特别的。问题是如何挂接系统,即系统调用函数时,程序甚至在运行时都不知道该函数 而不是目标C,参见VisualC++中的文章,感谢StopFoIP家伙回答我的前一个问题: 否则,Objective C运行时不需要包含此加载方法。主入口点当然存在于目标C程序中,如果只需在主方法中调用一

GNU Objective-C运行时提供了一种方法,允许您在程序执行进入主函数之前执行代码。代码通过一个特殊的类方法+加载在每个类和每个类别的基础上执行

更新:我在下面看到的答案并不令人满意。从主程序调用函数没有什么特别的。问题是如何挂接系统,即系统调用函数时,程序甚至在运行时都不知道该函数

而不是目标C,参见VisualC++中的文章,感谢StopFoIP家伙回答我的前一个问题:


否则,Objective C运行时不需要包含此加载方法。主入口点当然存在于目标C程序中,如果只需在主方法中调用一个静态方法就足够了,那也没什么大不了的:

在OOP语言中,因为主函数总是在类中,所以在执行主函数之前,总有一种方法可以运行一些代码。在Java中,它被称为。C语言中也有类似的机制

代码示例:

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

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

关键是要能够初始化类内的静态变量,因为它们是在实例变量之前创建的。

在c中寻找的是类构造函数在前面运行,类析构函数在后面运行

这里是一个教程的链接


实际上,GNU Objective-C运行时不需要包含load方法。苹果版的可可中不存在这种物质。为什么你认为你需要它?比方说,我想为一类应用程序创建一个容器,我不想让应用程序知道任何管道,比如我要设置的一些系统变量,或者其他任何东西。这只是举个例子。load方法肯定存在于Cocoa中,而且从10.0开始就一直存在。