Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 需要关于行动的澄清<;T>;_C#_Delegates_Xna - Fatal编程技术网

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

这可能有助于解释所涉及的类型签名。

太棒了,谢谢。工作完美。我以前见过=>符号,但明确解释它会有所帮助。太棒了,谢谢。工作完美。我以前见过=>符号,但明确解释它会有所帮助。