Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# won'类中的数据类型变量列表;不能更新_C#_List_Class - Fatal编程技术网

C# won'类中的数据类型变量列表;不能更新

C# won'类中的数据类型变量列表;不能更新,c#,list,class,C#,List,Class,我已经创建了一个以列表为属性的类 这是密码 public class ScreenEventNTF { //property public List<string> list_event_string { get; set; } //constructor public ScreenEventNTF(blah blah) { list_event_string = new List<string>(); }

我已经创建了一个以列表为属性的类 这是密码

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

    }

}
我尝试在notifier.list\u event\u字符串中写入所有字符串,但似乎没有 在列表中存储任何值

这是根据报告的代码

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);
我做错了什么


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

您是如何反复浏览列表的?需要查看打印列表对象中元素的代码。

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

  • 在屏幕外绘制位置:检查vector_鼠标中的值
  • 您正在绘制白色文本。背景对比度足够吗
  • 如果确实调用了该方法,并且列表中没有值,则可以说该方法不起作用。您可以使用调试器确认,在foreach(字符串…)之前设置一个断点

    另外,如果您没有使用缩放、旋转,正如我从参数中看到的,您可以使用DrawString方法的重载:


    最后,如果列表字段是公共的,为什么要在单独的方法中公开add功能?除非将来对封装进行更改,否则这是不必要的。

    显示的代码没有说明问题。介意添加一个实际产生问题的示例吗?请尝试在AddToStringTodraw方法上放置一个断点,并确保它已正确添加到列表中,并且打印的内容是您认为打印的内容。如何从列表中读取数据?除了构造函数参数外,所示代码工作正常。我能够让您的列表输出计数,如图所示。我正在花时间再次查看代码。我开始线程,因为我认为这是一个问题,因为引用类型的问题或类似的东西。谢谢你的回答。。。现在我明白问题应该来自另一个地方。
    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);