我尝试在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"))
{
}
}
答案 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
。