Это моя программа, которую использует класс, называется Time2. У меня есть ссылка, добавленная в TimeTest. Я продолжаю получать ошибку. Time2 - это «пространство имен», но используется как «тип»
Может ли кто-нибудь сказать мне, что это за ошибка и как ее исправить?
namespace TimeTest
{
class TimeTest
{
static void Main(string[] args)
{
Time2 t1 = new Time2();
}
}
}
c#
class
namespaces
TheAce
источник
источник
Time2
к этому вопросу, поскольку, вероятно, в этом и заключается проблема. Скорее всего, выTime2
определились в пространстве имен под названиемTime2
Ответы:
Я подозреваю, что у вас как минимум дважды возникала одна и та же проблема .
Вот:
namespace TimeTest { class TimeTest { }
... вы объявляете тип с тем же именем, что и пространство имен, в котором он находится. Не делайте этого.
Теперь у вас, видимо, такая же проблема с
Time2
. Я подозреваю , что если добавить:using Time2;
в ваш список
using
директив, ваш код будет компилироваться. Но, пожалуйста, устраните более серьезную проблему: проблемный выбор имен. (Перейдите по ссылке выше, чтобы узнать подробнее, почему это плохая идея.)(Кроме того, если вы действительно не заинтересованы в написании типов, основанных на времени, я бы посоветовал вам не делать этого ... и я говорю это как тот, кто делает именно это. Используйте встроенные возможности или третий партийная библиотека, например, моя . Правильная работа с датой и временем на удивление сложна. :)
источник
namespace TestApplication // Remove .Controller { public class HomeController : Controller { public ActionResult Index() { return View(); } } }
Удалите слово контроллера из namepsace
источник
Если вы работаете над большим приложением и не можете изменить какие-либо имена, вы можете ввести a,
.
чтобы выбрать нужный тип из пространства имен:namespace Company.Core.Context{ public partial class Context : Database Context { ... } } ... using Company.Core.Context; someFunction(){ var c = new Context.Context(); }
источник
У меня возникла эта проблема, когда я создал класс Response.cs внутри папки с именем "Response". Итак, VS ловил
new Response ()
as Folder / namespace.Поэтому я изменил имя класса на StatusResponse.cs и позвонил.
new StatusResponse()
Это решило проблему.источник
Все ответы указывают на причину, но иногда более серьезной проблемой является определение всех мест, которые определяют неправильное пространство имен. С помощью таких инструментов, как Resharper, которые автоматически настраивают пространство имен с использованием структуры папок, с этой проблемой довольно легко столкнуться.
Вы можете получить все строки, которые создают проблему, выполнив поиск в проекте / решении, используя следующее регулярное выражение:
namespace .+\.TheNameUsedAsBothNamespaceAndType
источник
Убедитесь, что ваш класс и имя пространства имен совпадают ...
Это происходит, когда пространство имен и имя класса совпадают. сделайте что-нибудь, напишите полное имя пространства имен, если вы хотите использовать пространство имен.
using Student.Models.Db; namespace Student.Controllers { public class HomeController : Controller { // GET: Home public ActionResult Index() { List<Student> student = null; return View(); } }
источник
если ошибка
Строка 26:
Строка 27: @foreach (Клиент-клиент в модели) Строка 28: {Строка 29:
укажите полное пространство имен, например @foreach (Start.Models.customer customer в модели)
источник