我创建了一个将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);
我做错了什么?
请帮助我,任何帮助都将不胜感激。
答案 0 :(得分:1)
您添加到列表的方式应该有效,我认为它确实有效,但问题是当您绘制字符串时:
如果确实调用了该方法并且列表中没有值,则可以说该方法不起作用。您可以使用调试器确认,在foreach(string ...)
之前设置断点另外,如果你没有使用scale,我可以从你的参数中看到旋转,你可以使用DrawString方法的这个重载:DrawString(SpriteFont, string, Vector2, Color)
最后,如果List字段是公共的,为什么要在单独的方法中公开添加功能?除非将来的封装发生变化,否则这是没有必要的。
答案 1 :(得分:0)
你是如何在列表中进行迭代的?需要查看在List对象中打印元素的代码。