我正在参加70-536考试的练习考试。下面是截图。黄色突出显示的是考试所说的正确答案。选择单选按钮的那个是我认为的答案。
请注意底部的说明,其中包括声明:
要创建
StreamWriter
对象,您必须使用现有的Stream
对象,例如FileStream
的实例。
我认为我选择的答案是最有效的用法,我认为在解释中所作的陈述是错误的。很明显,因为我选择的答案中的代码工作正常。
谁是对的????
答案 0 :(得分: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");
}
答案 1 :(得分:0)
他们是对的 - 您不能将TextWriter设置为等于FileStream的实例,因为FileStream不从TextWriter继承 - 您需要使用基于FileStream的StreamWriter,因为StreamWriter 继承来自TextWriter。