Hi list,
it seems that classes without an access specifier are public in mcs. I think this
is wrong.

A demonstration:

// file namespace1.cs
using System;

namespace de.condat.csharp {
class Foo {
public Foo ()
{
Console.Out.WriteLine ("Foo angelegt");
}
}
}

// file namespace2.cs
using System;

namespace de.condat.csharp1 {
class Foo {
public Foo ()
{
Console.Out.WriteLine ("Foo1 angelegt");
}
}
}

//file namespace.cs
using System;
using n1 = de.condat.csharp;
using n2 = de.condat.csharp1;

struct Tester {
public static void Main () {
n1.Foo f = new n1.Foo ();
n2.Foo b = new n2.Foo ();
}
}

Compiling with mcs :
$mcs /t:library namespace1.cs namespace2.cs
Compilation succeeded
$mcs /r:namespace1.dll namespace.cs
Compilation succeeded
$mono namespace.exe
Foo angelegt
Foo1 angelegt

Compiling with csc:
F:\namespace>csc /t:library namespace1.cs namespace2.cs
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
Copyright (C) Microsoft Corporation 2001. All rights reserved.


F:\namespace>csc namespace.cs /r:namespace1.dll
Microsoft (R) Visual C# .NET Compiler version 7.00.9466
for Microsoft (R) .NET Framework version 1.0.3705
Copyright (C) Microsoft Corporation 2001. All rights reserved.

namespace.cs(7,3): error CS0122: 'de.condat.csharp.Foo' is inaccessible due to
its protection level
namespace.cs(8,3): error CS0122: 'de.condat.csharp1.Foo' is inaccessible due to
its protection level





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

Reply via email to