Hi,

I am writing code on MS and on Mono. While 'porting' my code from MS .NET to
Mono .NET I encountered two problems with the c# code I wrote. I have
written 2 small programs to demonstrate the problem. Before I submit problem
reports for this I would like to know if these problems are already known
problems.

I'm running mono 0.12 on RH 7.3.

----------------------------------------------------------------------------
---------------------
The first programs demonstrates a problem with a enum type which is defined
in an assembly
that is used by another assembly.


The build script:

mcs --target module -o ./MonoTest.dll MonoTestAssembly.cs
mcs --target exe -o ./test.exe -r ./MonoTest.dll main.cs

The output (first compilation unit is ok):

RESULT: 0
main.cs(16) error CS0246: Cannot find type `MonoTest.Test.MyEnum'
Error: Compilation failed
RESULT: 1

The code

MonoTestAssembly.cs
-------------------

namespace MonoTest
{
        public class Test
        {       //error CS0246: Cannot find type `Test.MyEnum'
                public enum MyEnum { A, B, C };

                public Test()
                {
                }

        }
}

main.cs
-------

using MonoTest;

namespace MonoTest
{

        public class Test2
        {
                public enum TestEnum2 { X,Y,Z };
        }

        public class TestClass
        {
                static void Main(string[] args)
                {
                        Test2.TestEnum2 TheEnum2 = Test2.TestEnum2.X;
                        MonoTest.Test.MyEnum TheEnum = MonoTest.Test.MyEnum.A;
                }
        }
}

----------------------------------------------------------------------------
---------------------
The second problem has to do with two dimensional arrays

public class ArrayTest
{
        static void Main(string[] args)
        {

        }
        public ArrayTest()
        {
        }
        public static float[] ArrayA = new float[] { 1.0F, 2.0F, 3.0F };
        public static float[][] floatArray = new float[3][] { ArrayA, ArrayA,
ArrayA };
        //public static float[][] floatArray2 = new float[3][] { null, null,
ArrayA };
}

mcs --target exe -o ./test.exe main.cs

main.cs(13) error CS0029: Cannot convert implicitly from `float[]' to
`float'
Error: Compilation failed
RESULT: 1

Also the line that is commented out gives a compilation error.

Can anybody tell me if these problems are already solved?

Apart from these problems I was able to 'port' most of the code to Mono
without many (compilation) problems. I also managed to use pinvoke to invoke
a number of methods that are part of a shared library that I have written in
C++ (I use that shared library to read out the pentium time stamp counter).

So keep up the good work
regards,
Tom


_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to