2010-08-13 1 views
1

어제 "Type"이라는 필드를 사용하는 Class를 가질 수 없다는 것을 발견했습니다. 이것은 아마 예약되어 있습니다.this.Type reserved? 보고해야 할 것

필드가 예약되어있을 수도 있지만 public 문자열로 정의 된 유형 필드가없는 경우 anyObject.Type을 설정할 수 없습니다. getter 및 setter를 무시하고 YourObject를 "무엇이든"문자열로 직접 변경합니다.

직접 사용해보십시오. 유형 필드를 정의하고 설정하십시오.

미래에 필드로 "유형"을 사용할 수 없도록 Microsoft에보고해야하며이를 정의하는 과정에서 경고/오류가 발생하지 않습니다.

 
     public Point_Extended(Point p, booking b) 
     { 
      this.ID = p.ID; 
      this.Type = p.Type; 
      this.Status = p.Status; 
      this.Size = p.Size; 
      this.Coords = p.Coords; 
      this.Color = p.Color; 
      this.BuildingID = p.BuildingID; 

      this.Login = b.Login; 
      this.Starts = b.Starts; 
      this.Hours = b.Hours; 
      this.BookingID = b.ID; 
     } 
+4

코드 샘플을 제공하여 사용자가 확인할 수 있도록하고 사용중인 C# 버전을 확인하십시오. 나는 당신의 이야기에 장점이 있다고 의심하지만, 소스 코드를 포함하여 모든 발견 사항을 게시하지 않는 한 그것에 대해 아무 것도 할 수 없습니다. –

+2

또한'String' 클래스를 정의하려고합니까? – Oded

+0

"앞으로 Microsoft에서 아무도"유형 "을 필드로 사용하지 않으므로 정의 할 때 경고/오류가 발생하지 않습니다." Will

답변

0

Nevermind.

형식이 변경되었다고 생각하면서 혼란스러워했던 ToString() 재정의 표현이었습니다.

4

이름 abiguity가있는 경우 - 단지 this.Type/obj.Type (인스턴스)를 사용, TypeName.Type (정적) 또는 System.Type (유형). 또는 정말로 불쾌한 경우에는 global::System.Type. 이것은 잘 작동하고 질문과 일치합니다 (저는 생각합니다) :

static class Program 
{ 
    static void Main() { 
     Test anyObject = new Test(); 
     anyObject.Type = "abc"; 
    } 
} 
class Test 
{ 
    public string Type; 
} 
+0

귀하의 회신에 감사드립니다. 내 클래스에서 내 생성자로 첫 번째 게시물을 업데이트했습니다. 이미 this.Type 및 p.Type은 "rect"문자열입니다. 예제를 사용하여 실제 테스트 클래스 유형을 "abc"로 변경하지 않으므로 왜 내 테스트에서 작동하지 않습니까? 수업 ? 감사합니다. – dezza

+0

@dezza - 전체 수업을 표시하지 않는 한, 이것을 재현 할 방법이 없습니다. 예를 들어'Point' 란 무엇입니까? *. *은'.Type'을 가집니까? ** 재현 가능한 ** 예를 게시 할 수 있습니까? –

+0

죄송합니다. .Type 설정에 대한 정보 만 필요하다고 생각했습니다. 숨겨진 카드를 가지고있을 필요가 없습니다. http://pastebin.com/Z07pv9rV – dezza

0

"유형"을 클래스의 로컬 범위에 정의하고 있습니다.

class SomeClass 
{ 
    public string Type { get; set; } 
} 

그리고 나서 그 클래스의 일부 방법, 예를 들어,

class SomeClass 
{ 
    public string Type { get; set; } 

    public void DoSomeStuff() 
    { 
     Type = "Foo"; 
    } 
} 

이 SomeClass에서 "유형"(속성)와 네임 스페이스 시스템의 "종류"(A 타입) 사이에서 모호합니다.

+0

this.Type을 사용할 때 모호해야합니까? Marc의 샘플을 사용하면 잘 동작하지만, 내 자신을 사용할 때 여전히 형식이 바뀝니다. – dezza

관련 문제