类中的数据类型变量列表不会更新

时间:2012-02-27 21:47:15

标签: c# list class

我创建了一个将List作为属性的类 这是代码

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);

我做错了什么?

请帮助我,任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

您添加到列表的方式应该有效,我认为它确实有效,但问题是当您绘制字符串时:

  1. 在屏幕外绘制:检查vector_mouse中的值
  2. 您正在绘制白色文字。背景对比度足够吗?
  3. 如果确实调用了该方法并且列表中没有值,则可以说该方法不起作用。您可以使用调试器确认,在foreach(string ...)

    之前设置断点

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

    最后,如果List字段是公共的,为什么要在单独的方法中公开添加功能?除非将来的封装发生变化,否则这是没有必要的。

答案 1 :(得分:0)

你是如何在列表中进行迭代的?需要查看在List对象中打印元素的代码。