Haven't tried passing one as a variable yet, but I do use them religiously for mass property declaration. Like for example, I have a set of outfits, and each outfit is related to a menu option since they are both zero indexed I can directly relate from the return value of the messagebox to the index of the array.
int ret = MessageBox.Show()
if ret < BackButton
actor.SetOutfit(outfits[ret])
endif
I just wish we had a little more control, multi-dimensional arrays, pointers, and addresses of variables... But I guess it would be more of a coding language than a scripting language if we had that much control.