Pages

2015/11/24

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

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

null を入れてしまえば良い

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