次のようなクラスがあります。
C#
1class ConsoleForegroundColor : IDisposable 2{ 3 public ConsoleForegroundColor(ConsoleColor color) 4 { 5 OriginalColor = Console.ForegroundColor; 6 Console.ForegroundColor = color; 7 } 8 9 public ConsoleColor OriginalColor { get; set; } 10 11 public void Dispose() 12 { 13 Console.ForegroundColor = OriginalColor; 14 } 15}
これは次のような使い方をします。
C#
1Console.WriteLine("デフォルトの色で表示"); 2using (new ConsoleForegroundColor(ConsoleColor.Green)) 3{ 4 Console.WriteLine("緑で表示"); 5} 6Console.WriteLine("デフォルトの色で表示");
インスタンス生成時にコンソールのフォント色を指定された色に変更し、破棄される時に元に戻します。
コンソールに描画する色をリソースと捉えることができなくはないと思うので、IDisposable の本来の使い方とそれほどかけ離れていなくもないと言えなくもないような気がするようなのですが、実際どうなのでしょう?
わかりにくく保守しにくいソースになっているでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/23 09:17