Este es mi programa que usa la clase se llama Time2 Tengo la referencia agregada a TimeTest Sigo recibiendo el error 'Time2' es un 'espacio de nombres' pero se usa como un 'tipo'
¿Podría alguien decirme qué es este error y cómo solucionarlo?
namespace TimeTest
{
class TimeTest
{
static void Main(string[] args)
{
Time2 t1 = new Time2();
}
}
}
c#
class
namespaces
El as
fuente
fuente
Time2
a esta pregunta, ya que probablemente ahí radique el problema. Lo más probable es que tienesTime2
definido en un espacio de nombres llamadoTime2
Respuestas:
Sospecho que tienes el mismo problema al menos dos veces .
Aquí:
namespace TimeTest { class TimeTest { }
... estás declarando un tipo con el mismo nombre que el espacio de nombres en el que se encuentra. No hagas eso.
Ahora aparentemente tienes el mismo problema con
Time2
. Yo sospecho que si se agrega:using Time2;
a su lista de
using
directivas, su código se compilará. Pero, por favor, solucione el problema más grande: la elección problemática de los nombres. (Siga el enlace de arriba para conocer más detalles de por qué es una mala idea).(Además, a menos que esté realmente interesado en escribir tipos basados en el tiempo, le aconsejo que no lo haga ... y lo digo como alguien que hace exactamente eso. Utilice las capacidades integradas o una tercera biblioteca de fiestas como, um, la mía . Trabajar con fechas y horas correctamente es sorprendentemente complicado. :)
fuente
namespace TestApplication // Remove .Controller { public class HomeController : Controller { public ActionResult Index() { return View(); } } }
Eliminar la palabra del controlador de namepsace
fuente
Si está trabajando en una aplicación grande y no puede cambiar ningún nombre, puede escribir a
.
para seleccionar el tipo que desea en el espacio de nombres:namespace Company.Core.Context{ public partial class Context : Database Context { ... } } ... using Company.Core.Context; someFunction(){ var c = new Context.Context(); }
fuente
Compruebe que el nombre de su clase y espacio de nombres sea el mismo ...
Sucede cuando el espacio de nombres y el nombre de la clase son iguales. Haga una cosa: escriba el nombre completo del espacio de nombres cuando desee utilizar el espacio de nombres.
using Student.Models.Db; namespace Student.Controllers { public class HomeController : Controller { // GET: Home public ActionResult Index() { List<Student> student = null; return View(); } }
fuente
Tuve este problema cuando creé una clase "Response.cs" dentro de una carpeta llamada "Respuesta". Entonces VS estaba capturando el
new Response ()
espacio de nombres Carpeta /.Así que cambié el nombre de la clase a StatusResponse.cs y llamé
new StatusResponse()
. Esto resolvió el problema.fuente
Todas las respuestas indican la causa, pero a veces el mayor problema es identificar todos los lugares que definen un espacio de nombres inadecuado. Con herramientas como Resharper que ajustan automáticamente el espacio de nombres utilizando la estructura de carpetas, es bastante fácil encontrar este problema.
Puede obtener todas las líneas que crean el problema buscando en proyecto / solución usando la siguiente expresión regular:
namespace .+\.TheNameUsedAsBothNamespaceAndType
fuente
si el error es
Línea 26:
Línea 27: @foreach (Clientes cliente en Modelo) Línea 28: {Línea 29:
proporcione el espacio de nombre completo
como @foreach (Start.Models.customer customer in Model)
fuente