インデックス0ベースは0以上で引数リストのサイズよりも小さくなければなりません

インデックス0ベースは0以上で引数リストのサイズよりも小さくなければなりません
C#で文字列を扱う際に多用するエラーです。String.Format は 0 からスタートします。

String.Format メソッド

C# の String.Format メソッドは、文字列を整形したい時に多用するメソッドです。しかし、これは見た目で間違いに気づかない場合もあり、また、ミスっていても実行時までエラーに気づかないという欠点がありました。
int len = 50;
// これは例外。
string hoge = string.Format("名前は{1}文字以内で入力してください。", len);
// インデックスは 0 からスタート。
string hoge2 = string.Format("名前は{0}文字以内で入力してください。", len);

C#6.0の文字列補完

C# 6.0 となり、ようやくこれが改善されました。
int len = 50;
// C#6.0からはこう書けます。
string hoge2 = $"名前は{len}文字以内で入力してください。";

直感的かつ簡潔な書き方になりました。
今までのコードも全部リファクタリングしたいくらいですね!

このブログの人気の投稿

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

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