C# 需要关于行动的澄清<;T>;
下面是一种用于将数据保存到文件的方法,这让我感到困惑:C# 需要关于行动的澄清<;T>;,c#,delegates,xna,C#,Delegates,Xna,下面是一种用于将数据保存到文件的方法,这让我感到困惑: public void SaveData(string filename, Action<StreamWriter> saveAction) 因为这毫无意义,而且我也不可能引用StreamWriter.WriteLine。现在我在想,一定有一个方法可以从我不知道的类中获取StreamWriter。如果有人愿意为我指出正确的方向,我将非常感激 您可能会问,为什么我不能创建自己的StreamWriter,并按照我一贯的方式来做。嗯
public void SaveData(string filename, Action<StreamWriter> saveAction)
因为这毫无意义,而且我也不可能引用StreamWriter.WriteLine。现在我在想,一定有一个方法可以从我不知道的类中获取StreamWriter
。如果有人愿意为我指出正确的方向,我将非常感激
您可能会问,为什么我不能创建自己的
StreamWriter
,并按照我一贯的方式来做。嗯,我在XNA的Zune上工作,因此在所有级别的保护下(所有应用程序都是沙盒),写入文本文件实际上是相当困难的,我现在使用的库承诺,如果我能弄清楚如何有效地使用Action
,它将更加精简。另外,我想学习并更好地装备自己,以便在将来使用学员。可能API的用途如下:
SaveData(filename, writer => writer.WriteLine(saveData));
private static void SaveToWriter(StreamWriter writer)
{
// get saveData somehow
writer.WriteLine(saveData);
}
// ...
SaveData(filename, SaveToWriter);
=>符号简洁地声明了一个匿名函数。你可以用这样一种更长的方式来写:
SaveData(filename, writer => writer.WriteLine(saveData));
private static void SaveToWriter(StreamWriter writer)
{
// get saveData somehow
writer.WriteLine(saveData);
}
// ...
SaveData(filename, SaveToWriter);
这可能有助于解释所涉及的类型签名。可能API的用途如下:
SaveData(filename, writer => writer.WriteLine(saveData));
private static void SaveToWriter(StreamWriter writer)
{
// get saveData somehow
writer.WriteLine(saveData);
}
// ...
SaveData(filename, SaveToWriter);
=>符号简洁地声明了一个匿名函数。你可以用这样一种更长的方式来写:
SaveData(filename, writer => writer.WriteLine(saveData));
private static void SaveToWriter(StreamWriter writer)
{
// get saveData somehow
writer.WriteLine(saveData);
}
// ...
SaveData(filename, SaveToWriter);
这可能有助于解释所涉及的类型签名。太棒了,谢谢。工作完美。我以前见过=>符号,但明确解释它会有所帮助。太棒了,谢谢。工作完美。我以前见过=>符号,但明确解释它会有所帮助。