Skip to main content

CompileAfter (Class Keyword)

Specifies that this class should be compiled after other (specified) classes. In contrast to DependsOn, this keyword does not require the other classes to be runnable.


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. This keyword does not ensure the specified classes are runnable before compiling this class. Also, the CompileAfter keyword affects only classes with common values for the System keyword.


To ensure that a class is compiled after other classes are runnable, instead use the DependsOn keyword. For example, if class A refers to a class query defined in class B, class B must be runnable before class A can be compiled; in this case, use the DependsOn keyword.

This keyword does not affect runtime behavior.

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