2012-02-27 4 views
0

을 업데이트되지 않습니다 여기 내가 메인 클래스의 코드목록은 내가 속성으로 목록을 갖는 클래스를 생성했습니다

public class ScreenEventNTF 
{ 
    //property 
    public List<string> list_event_string { get; set; } 

    //constructor 
    public ScreenEventNTF(blah blah) 
    { 
     list_event_string = new List<string>(); 
    } 

    // the not-working method 
    public void AddToStringTodraw(string string_inp) 
    { 
     list_event_string.Add(string_inp); 

    } 

} 

입니다

ScreenEventNTF notifier = new ScreenEventNTF(blah blah); 
notifier.AddToStringTodraw("Fabulous"); 
같은

그리고 notifier.list_event_string에 모든 문자열을 쓰려고했지만 은 목록에 저장된 값이 없습니다.

여기에 따른 코드는 다음과 같습니다. 코멘트.

foreach (string text in notifier.list_event_string) 
spriteBatch.DrawString(font_test, text , 
       vector_mouse, Color.White, 0f, Vector2.Zero, 1.0f, SpriteEffects.None, 1.0f); 

내가 뭘 잘못하고 있니?

도와주세요. 도움을 주시면 감사하겠습니다.

+0

표시된 코드는 문제를 보여주지 않습니다. 실제로 문제를 일으키는 예제를 추가할까요? –

+0

AddToStringTodraw 메서드에 중단 점을 넣고 목록에 제대로 추가되었는지 확인하고 인쇄 내용이 사용자가 인쇄 한 것이라고 생각하십시오. – zmbq

+0

어떻게 목록에서 데이터를 읽습니까? – Tigran

답변

1

당신이 일을해야 목록에 추가, 나는이 작업을 수행한다고 생각하지만 문제는 문자열 당신을 그릴 때 그 중 하나입니다 방법 :

가있는 위치에
  1. 그리기 오프 화면 다음을 확인 vector_mouse의 값
  2. 흰색 텍스트를 그리는 중입니다. 배경 대비가 충분합니까?

실제로 호출되고 목록에 값이없는 경우 메서드가 작동하지 않는다고 말할 수 있습니다. 디버거로 확인하고 foreach (문자열 ...) 바로 앞에 중단 점을 설정하면됩니다

또한 매개 변수에서 볼 수 있듯이 회전을 사용하지 않는 경우이 과부하를 사용할 수 있습니다 DrawString 메서드의 : DrawString(SpriteFont, string, Vector2, Color)

마지막으로 List 필드가 public이면 추가 기능을 별도의 메서드로 표시해야하는 이유는 무엇입니까? 장래에 캡슐화가 변경되지 않는 한 필요하지 않습니다.

0

정확히 어떻게 목록을 반복하고 있습니까? List 객체의 요소를 인쇄하는 코드가 필요합니다.

관련 문제