C# 既定のパラメーター値は、コンパイル時の定数である必要があります。

静的メソッドでコンパイルエラー
メソッドの引数を省略できるオプション引数。この引数には、しばしば定数を入れたい時もありますが、static メソッドで定数を指定しようとすると怒られてしまう。
private static string Hoge(Encoding enc = Encoding.UTF8)
{    
    return "ほげ";
}
これではだめですね。

null を入れてしまえば良い

これがスマートといえるかどうかはわかりませんが、こんな方法があります。メソッド自体にも意味がないですが、気にしないでください。
private static string Hoge(Encoding enc = null)
{
    enc = enc ?? Encoding.UTF8;
    return "ほげ";
}
他にも方法があるのかな。

このブログの人気の投稿

Excel で入力した文字に勝手に取り消し線が入る

コピーした行の挿入が表示されない時はフィルタされていないかチェック