이것은 클래스가 사용하는 내 프로그램입니다 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 고객).