无法创建StreamReader

时间:2014-04-26 11:13:45

标签: c# class xna instance

我尝试在XNA游戏中创建StreamReader类的实例。但是,它始终打印

Invalid token 'using' in class struct or interface member declaration

为什么呢?在代码之上,theres

using System.IO;

班级:

class Enemy : Character
{
    //Several booleans and stuff
    using(StreamReader reader = new StreamReader("file.txt"))
    {
    }
}

1 个答案:

答案 0 :(得分:2)

将代码放在方法中,而不是在类级别。

class Enemy : Character
{
    //Several booleans and stuff

    private void SomeMethod()
    {
        using(StreamReader reader = new StreamReader("file.txt"))
        {
        }
    }
}

您通常只要在需要时保持StreamReader打开,然后尽快关闭它。一旦你掌握了一些外部资源,比如磁盘上的物理文件,你就不想永远坚持下去了。得到你需要的东西并发布它。

  

“好的,谢谢,但是有一个原因它在方法之外不起作用吗?”

不确定如果你能做到这意味着什么。当您点击使用块的末尾时,实例将被丢弃。因此,如果您可以在类级别执行此操作,是否会立即处理该实例并使其在类中无法使用?或者神奇地知道在课堂被处理时处理它?<​​/ p>

如果您想在课程级别定义它,请在没有using语句的情况下定义它,并让您的课程implement the IDisposable interface。然后,您可以在public void Dispose()方法中关闭/刷新/处置实例。但我真的建议您只在需要时创建StreamReader