久々に、スムーズにコードが書けるコンディションが戻ってきた感じです。
やはり、気持ち良くコードが書けると、気分も晴れやかです。
というわけで、ふと思い付いたこと。
C#の素晴らしいusing文 §
C#のusing文を使うと確実なリソースの開放(ファイルのクローズ等)を容易に記述できます。
try-finally構文よりもずっと優れています。
using (TextWriter writer = File.CreateText(@"s:\delme1.txt"))
{
writer.WriteLine("やっほー");
}
しかし、using文を書かなければどうにもなりません。
デリゲートを使った改善 §
C# 3.0時代なら、こんなラッパメソッドを用意して。
public class TextFileWriteWrapper
{
public static void WriteFile( string filenane,
Action<TextWriter> invoker )
{
using (TextWriter writer = File.CreateText(filenane))
{
invoker(writer);
}
}
}
これを使って、以下のような感じに書いても良いかなと。
TextFileWriteWrapper.WriteFile(@"s:\delme2.txt",writer => {
writer.WriteLine("やっほー");
});
これなら、メソッドさえ呼び出していればクローズは確実。using忘れはあり得ないわけです。
しかも、File.WriteAllLinesのような配列を準備する手間も要りません。
その上、タイプする文字数も減ります。このままでも短いですが、名前を工夫すればもっと短くて良いでしょう。