Errore del compilatore CS0438

Aggiornamento: novembre 2007

Messaggio di errore

Il tipo 'tipo' in 'modulo_1' è in conflitto con lo spazio dei nomi 'spazio dei nomi' in 'modulo_2'.
The type 'type' in 'module_1' conflicts with the namespace 'namespace' in 'module_2'.

Questo errore si verifica quando un tipo contenuto in un file di origine è in conflitto con uno spazio dei nomi incluso in un altro file di origine. In genere questa situazione si verifica quando uno di essi o entrambi provengono da un modulo aggiunto. Per correggere l'errore, rimuovere il tipo o lo spazio dei nomi che ha generato il conflitto.

Il seguente codice di esempio genera l'errore CS0438.

Compilare innanzitutto il seguente file:

// CS0438_1.cs
// compile with: /target:module
public class Util
{
   public class A { }
}

Compilare quindi il seguente file:

// CS0438_2.cs
// compile with: /target:module
namespace Util 
{
   public class A { }
}

Compilare infine il seguente file:

// CS0438_3.cs
// compile with: /addmodule:CS0438_1.netmodule /addmodule:CS0438_2.netmodule
using System;
public class Test
{
   public static void Main() {
      Console.WriteLine(typeof(Util.A));   // CS0438
   }
}