2015-09-15 39 views
0

XmlDictionaryWriter是一個抽象類。
爲什麼然後它有一個構造函數?爲什麼XmlDictionaryWriter.CreateBinaryWriter可以返回抽象類的實例?

爲什麼它的方法「CreateBinaryWriter」返回這個抽象類的一個實例?
我知道CreateBinaryWriter傳遞了這個「抽象」類的實例寫入的流。 這讓我想知道抽象的「抽象」真的是多麼的...
通過所有關於抽象關鍵字的闡述,這不適合圖片。
代碼:

 MemoryStream WriteName(Name name) 
     { 
      var ms = new MemoryStream(); 
      var binary = XmlDictionaryWriter.CreateBinaryWriter(ms); 
      var ser = new DataContractSerializer(typeof(FullName)); 
      ser.WriteObject(binary, name); 
      return ms; 
     } 

能S.O.說明?
THX

回答

0

我不能看到完整的XmlDictionaryWriter層次,但我認爲XmlDictionaryWriter.CreateBinary()不是一個構造器,但一個靜態方法;我們可以看到使用靜態方法實現工廠方法模式。
可能調用抽象類的靜態方法,因爲靜態方法不需要對象實例(您可以在Difference between Static methods and Instance methods處閱讀更多內容)