在C#中,为什么我可以使用Textwriter代替StreamWriter



我是C#的新手,所以请原谅任何似乎基本的问题。

我想知道为什么 TextWriter StreamWriter 都可以在我的代码示例中使用相同的功能(或似乎是)(使用XML序列化方法)。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

在此示例中,我正在玩XML元素,属性等的列表,并希望通过将它们传递到 serialize 函数(我已经创建)作为一个来序列化。列表。

这是代码(请注意,文本作者的使用)

public static void serialize(List<Table> listOfTables)
{
    var ser = new XmlSerializer(typeof(List<Table>));
    TextWriter writer =
        new StreamWriter(@"LocationSample.xml");
    ser.Serialize(writer, listOfTables);
    writer.Close();
}

这是该代码的工作原理完全相同(或者似乎是)(请注意,streamWriter而不是TextWriter)

public static void serialize(List<Table> listOfTables)
{
    var ser = new XmlSerializer(typeof(List<Table>));
    StreamWriter writer =
        new StreamWriter(@"LocationSample.xml");
    ser.Serialize(writer, listOfTables);
    writer.Close();
}

我很新,我了解继承和抽象课的基础知识,但是我似乎无法将所有这些都加在一起以完全理解这一点。

请发送您的想法和建议。谢谢!

两个实例都是StreamWriter实例,但是您将一个实例分配给基类类型TextWriter的变量,这是可以的。

由于XmlSerialize.Serialize具有接受基类TextWriter实例的过载,因此两个调用都可以,并且具有相同的净效果。

相关内容

  • 没有找到相关文章

最新更新