2016-09-17 68 views
0

我遇到了一個指派來裝飾Console類(在C#中),並在Write和WriteLine方法中實現一些自定義的東西。我不知道如何裝飾一個控制檯,主要是因爲它是靜態的(並且沒有繼承,只能從System.Object中獲取),所以我不知道如何裝飾控制檯。C#裝飾控制檯類

那麼這裏有什麼可能?

謝謝! 盧卡斯

回答

0

,可隨時更換流Console寫入和讀取使用Console.SetOut(TextWriter)Console.SetIn(TextReader)Console.SetError(TextWriter)。只需創建自定義的TextWriterTextReader類,即可完成裝飾器行爲並將其分配給靜態方法。

public static void Main() 
{ 
    TextWriter oldOut = Console.Out; 
    TextWriter decorator = new MyCustomDecorator(oldOut); 
    Console.SetOut(decorator); 

    //Do stuff; 
}