Skip to main content


Specifies that this class should be compiled after other (specified) classes.


To indicate that the class compiler should compile this class after other classes, use the following syntax:

Class MyApp.MyClass [ CompileAfter = classlist ]  { //class members }

Where classlist is one of the following:

  • A class name. For example:

    [ CompileAfter = MyApp.Class1 ]
  • A comma-separated list of class names, enclosed in parentheses. For example:

    [ CompileAfter = (MyApp.Class1,MyApp.Class2,MyApp.Class3) ]


This keyword specifies that the class compiler should compile this class after compiling the specified classes.

Typically this keyword is used when there is a dependency that the compiler cannot detect between classes such that one must be compiled after another.

This keyword affects only compilation order, not runtime behavior.


The CompileAfter keyword does not ensure the specified classes are runnable before compiling this class. See the DependsOn keyword.

Also, the CompileAfter keyword affects only classes with common values for the System keyword.

Effect on Subclasses

This keyword is inherited from all superclasses. If the subclass specifies a value for the keyword, that value specifies additional classes that must be compiled before the subclass can be compiled.


By default, this keyword is not specified.

See Also

FeedbackOpens in a new tab