CS0438 de erro do compilador

Mensagem de erro

O tipo de 'type' em 'module_1' conflitos com o namespace 'namespace' no 'module_2'.

Este erro ocorre quando um tipo em um conflitos de arquivo de fonte com um espaço para nome em outro arquivo de fonte.Isso geralmente acontece quando um ou ambos são provenientes de um módulo adicional.Para resolver, renomeie o tipo ou o namespace que causou o conflito.

O exemplo a seguir gera CS0438:

compilar este arquivo pela primeira vez:

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

Em seguida, compilar este arquivo:

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

E, em seguida, compilar este arquivo:

// 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
   }
}