[c#] ‘네임 스페이스’이지만 ‘유형’처럼 사용됩니다.

이것은 클래스가 사용하는 내 프로그램입니다 Time2라고합니다 TimeTest에 참조가 추가되었습니다. 오류 ‘Time2’는 ‘네임 스페이스’이지만 ‘유형’처럼 사용됩니다.

누군가이 오류가 무엇이며 어떻게 수정하는지 알려주시겠습니까?

namespace TimeTest
{
  class TimeTest
  {
    static void Main(string[] args)
    {
        Time2 t1 = new Time2();
    }
  }
}



답변

나는 당신이 적어도 두 번 같은 문제가 있다고 생각합니다 .

여기:

namespace TimeTest
{
    class TimeTest
    {
}

… 당신은 그것이있는 네임 스페이스와 같은 이름을 가진 타입을 선언하고 있습니다. 그렇게하지 마십시오.

이제 분명히 Time2. 나는 의심 추가하는 경우 :

using Time2;

using지시문 목록에 코드가 컴파일됩니다. 하지만 더 큰 문제인 이름 선택 문제를 해결하십시오. ( 이유에 대한 자세한 내용은 위의 링크를 참조하십시오. 나쁜 생각 .)

(또한, 시간 기반 유형을 작성하는 데 정말로 관심이 없다면 그렇게 하지 않는 것이 좋습니다. 정확히 그렇게하는 사람으로서 그렇게 말합니다. 내장 된 기능을 사용하거나 세 번째 같은 파티 라이브러리, 음, . 날짜와 시간을 정확하게 작업하는 것은 놀랍도록 까다 롭습니다. 🙂


답변

namespace TestApplication // Remove .Controller
{
    public class HomeController : Controller
    {
       public ActionResult Index()
        {
            return View();
        }
    }
}

네임 페이스에서 컨트롤러 단어 제거


답변

큰 앱에서 작업 중이고 이름을 변경할 수없는 경우 a .를 입력하여 네임 스페이스에서 원하는 유형을 선택할 수 있습니다 .

namespace Company.Core.Context{
  public partial class Context : Database Context {
    ...
  }
}
...

using Company.Core.Context;
someFunction(){
 var c = new Context.Context();
}


답변

“Response”라는 폴더 안에 “Response.cs”클래스를 만들면서이 문제가 발생했습니다. 그래서 VS는 new Response ()폴더 / 네임 스페이스 로 잡았습니다 .

그래서 클래스 이름을 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 고객).