User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

naming_conflicts [2018/02/18 06:53] (current)
wolfgangriedmann created
Line 1: Line 1:
 +====== Naming conflicts ======
 +Unfortunately, the .NET runtime is very sensitive to any naming conflicts, and X# is more accurate than Vulcan.NET. So these rules apply:
 +  * No class in your application can have the same name as your application itself. So if your application (exe or dll) is has a name of MyClass, you cannot have a class MyClass in your application. If you cannot change the name of your class, change the name of your application to app.MyClass or something similar
 +  * your application cannot have the same name as any of the VO runtime methods. Otherwise you will have to call the function fully qualified: 
 +<code>cString := VulcanRTFuncs.Functions.Substr( "Hello X#", 1, 2 )</code>
 +The relative error is
 +<code>error XS0118: 'Substr' is a namespace but is used like a variable</code>
 +  * you cannot have a method and a access/assign with the same name. Since access/assign does not exist in the .NET runtime, the X# compiler translates access/assign to property. And .NET does not allow a property and a method with the same name name in one class
 +  * The Vulcan compiler has not problem when two functions of the same name exists in different assemblies: it takes one of them, and you cannot define which. The X# compiler is more precise and does not allow this. 
naming_conflicts.txt ยท Last modified: 2018/02/18 06:53 by wolfgangriedmann