2

我正在参加考试 70-536 的模拟考试。下面是一个截图。黄色突出显示的是考试所说的正确答案。选择了单选按钮的那个是我认为的答案。

请注意底部的解释,其中包括以下语句:

要创建StreamWriter对象,您必须使用现有Stream对象,例如FileStream.

我认为我选择的答案是最有效的使用,我认为解释中的陈述是错误的。显然,因为我选择的答案中的代码运行良好。

谁说的对????

在此处输入图像描述

4

2 回答 2

2

在您选择的答案中,C# 和 VB.NET 版本之间存在差异。VB.NET 版本甚至无法编译,而 C# 是正确的。

这不会编译:

Dim tw as TextWriter = New FileStream("Hello.dat", FileMode.Create)

还行吧:

TextWriter tw = new StreamWriter("Hello.dat");

最后一个答案是不可能的,因为TextWriter是一个抽象类,您不能直接实例化它。

但显然,您将在现实世界应用程序中使用的正确答案甚至不在列表中。这将是:

using (var writer = new StreamWriter("Hello.dat"))
{
    writer.Write("Hello world");
}

或者如果您需要使用Stream

using (var stream = File.Create("Hello.dat"))
using (var writer = new StreamWriter(stream))
{
    writer.Write("Hello world");
}
于 2011-05-14T21:42:53.100 回答
0

他们是对的 - 您不能将 TextWriter 设置为等于 FileStream 的实例,因为 FileStream 不继承自 TextWriter - 您需要使用基于 FileStream 的 StreamWriter,因为 StreamWriter确实从 TextWriter 继承。

于 2011-05-14T21:42:59.573 回答