I suppose what I should have asked is, which one should I use, or is there a difference between MyFunction(Alien) and MyFunction (Alien.Aliens)...... ?
My Types tutorial should help explain it:
http://home.cmit.net/rwolbeck/programmingtutorial/reference/types.htmexcerpt from it:
A quick note about the variable 'thisStudent.Student'. Why do I have to place '.Student' after the variable name when creating a new instance of it?
The reason is because Blitz needs to know what kind of variable 'thisStudent' is. It is exactly the same behavior when we create any other new variables in Blitz. Every time we create a new variable we must let Blitz know what kind of variable it is by assigning an identifier to it.
If it's an integer then we need to assign a % to it (or nothing at all). If it's a string then we need to assign a $ to it. If it's a floating point variable, then we need to assign a # to it.
So, keeping with that behavior, if it's a Type, then we need to assign a Type identifier to it (in this case '.Student').
Having said that; since you only need to let Blitz know what kind of variable a variable is the FIRST time you use that variable (for example, mystring$ can later be written in your code as just mystring), the same is true for Types. The first time we use the variable 'thisStudent' we have to include the identifier '.Student' but every time thereafter, we only need to use the variable name 'thisStudent'.
First time we use the variable 'thisStudent' in our code:
thisStudent.Student = New Student
Every time thereafter:
thisStudent = New Student
Makes sense? If it doesn't, don't worry... You can always still use the type identifier with the variable. In other words, if you didn't understand this explanation, then just continue to write/use all of your Types like this:
thisStudent.Student = New Student