我正在参加考试 70-536 的模拟考试。下面是一个截图。黄色突出显示的是考试所说的正确答案。选择了单选按钮的那个是我认为的答案。
请注意底部的解释,其中包括以下语句:
要创建
StreamWriter
对象,您必须使用现有Stream
对象,例如FileStream
.
我认为我选择的答案是最有效的使用,我认为解释中的陈述是错误的。显然,因为我选择的答案中的代码运行良好。
谁说的对????
我正在参加考试 70-536 的模拟考试。下面是一个截图。黄色突出显示的是考试所说的正确答案。选择了单选按钮的那个是我认为的答案。
请注意底部的解释,其中包括以下语句:
要创建
StreamWriter
对象,您必须使用现有Stream
对象,例如FileStream
.
我认为我选择的答案是最有效的使用,我认为解释中的陈述是错误的。显然,因为我选择的答案中的代码运行良好。
谁说的对????
在您选择的答案中,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");
}
他们是对的 - 您不能将 TextWriter 设置为等于 FileStream 的实例,因为 FileStream 不继承自 TextWriter - 您需要使用基于 FileStream 的 StreamWriter,因为 StreamWriter确实从 TextWriter 继承。