将 StreamWriter 传递mgraph
给您的process()
方法
static void Main(string[] args)
{
// The id and m_graph_file fields are static.
// No need to instantiate an object
gen.id = args[1];
gen.m_graph_file = @"msgrate_graph_" + gen.id + ".txt";
StreamWriter mgraph = new StreamWriter(gen.m_graph_file);
process(mgraph);
}
public static void process(StreamWriter sw)
{
// use sw
}
但是,您的代码有一些难以理解的要点:
gen
您使用两个静态变量声明该类。这些变量在所有 gen 实例之间共享。如果这是一个预期的目标,那么没问题,但我有点困惑。
- 您在 main 方法中打开 StreamWriter。考虑到静态 m_grph_file,这并不是真正必要的,并且在您的代码引发异常的情况下使清理变得复杂。
例如,在您的 gen 类中(或在另一个类中),您可以编写适用于同一文件的方法,因为文件名在类 gen 中是静态的
public static void process2()
{
using(StreamWriter sw = new StreamWriter(gen.m_graph_file))
{
// write your data .....
// flush
// no need to close/dispose inside a using statement.
}
}