In my opinion, use public fields (i.e. arrays in your case) on the class for method return data isn't as clean an implementation as creating a return data structure that the method returns itself.
Also, with OO languages, I see no reason for out parameters. While it is true that you can only return "one" value from a method, that value can be anything.
While you could return an array of arrays, this requires you to know the magic numbers of the outer array for the inner values. Not very friendly for the method consumers.
What about creating a small class to contains the data to return? The class can have a public property for each array you need to return. That way you get a single return value (an instance of your return data class) that has logically named members for the data. This provides greater flexibility because you can address the data by an explicit name instead of a magic array index while also making it considerably more consumer friendly.
I use this pattern to create "ReturnArg" classes. The return argument classes often have status codes as well as the actual return data.
-
Peter