When methods of ruby extension receive or return Array objects, .NET assembly also returns Arrays of different types of objects. The difference is that .NET Arrays may have several dimensions. For example, the C++/CLI definition of several methods of the ClaLam class reads as follows:
... array<float,2>^ get_ABBD(...array<float>^ varargs) ; array<float,2>^ get_G(...array<float>^ varargs) ; array<float>^ get_alfaEh1(...array<float>^ varargs) ; ...
The two first methods above return 2D arrays, instead of 1D arrays of 1D arrays, for ruby extension.
Similarly, when a FeResPost method of ruby extension receives or returns a Hash object, the corresponding method of .NET assembly deal with a Dictionary. For examples, the methods of CLA classes devoted to management of units are declared as follows:
... System::Collections::Generic::Dictionary<System::String^, System::String^>^ getUnits(void) ; void setUnits(System::Collections::Generic::Dictionary< System::String^,System::String^>^ Units) ; void changeUnits(System::Collections::Generic::Dictionary< System::String^,System::String^>^ Units) ; ...