Often a .NET assembly may have property, method, or event names that are the same as COBOL reserved words or ACUCOBOL-GT standard property or style names. This creates ambiguity for the compiler. In addition, because .NET class names are used in the USAGE HANDLE clause of data description entries, in Screen Section items, and in DISPLAY statements, they may also cause ambiguities with COBOL reserved words.
To avoid these ambiguities, NETDEFGEN prepends an "at" sign character ("@") to every class, property, method, and event name in the generated COPY file.
In addition, ambiguity may occur with event names when two or more .NET assemblies define the same event name. To reduce this possibility, NETDEFGEN prepends the control name to each event name. For example, if a .NET control named "MyControl" has an event called "RightMouseButtonClick", NETDEFGEN names the control "@MyControl" and the event "@MyControlRightMouseButtonClick".
The "@" sign is not required unless ambiguities in the meaning exist in a certain context. However, to guard against unanticipated name conflicts and to ensure clarity in the reading and maintenance of the source code, we strongly recommend that you always use "@" when referring to a .NET property, style, or method in your source code. If you do not use an "@" sign and a clash occurs, a compiler error results.