2012-02-27 98 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

您显示的代码没有显示问题。记住添加一个实际上会产生问题的例子吗? – 2012-02-27 21:50:22

+0

尝试在您的AddToStringTodraw方法上放置一个断点,并确保它已正确添加到列表中,并且您打印的是您打印的内容。 – zmbq 2012-02-27 21:50:40

+0

你如何从列表中读取数据? – Tigran 2012-02-27 21:50:44

回答

1

您添加到列表中应该工作,我认为它的工作,但问题是,当你绘制字符串你要么方式:

  1. 绘制在一个位置关闭屏幕:检查值在vector_mouse
  2. 您正在绘制白色文本。背景对比度是否足够?

如果确实调用该方法,并且该列表中没有值,则可以说该方法不起作用。你可以用调试器来确认,在foreach之前设置一个断点(字符串...)

另外,如果你没有使用scale,旋转,我可以从你的参数中看到,你可以使用这个过载拉绳方法:DrawString(SpriteFont, string, Vector2, Color)

最后,如果列表场是公开的,你为什么要暴露在一个单独的方法附加功能?除非未来封装方面会发生变化,否则没有必要。

0

准确地说你是如何遍历整个列表的?需要查看打印List对象中元素的代码。