コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【C#】数値を0埋めの文字列に変換する拡張メソッドの実装

はじめに

int num = 1234;
Debug.Log(num.ToString("D8")); // 00001234

数値を0埋めの文字列に変換する場合は上記のような構文を使用すると実現できますが
ゲームを開発していると、数値を0埋めの文字列に変換する機会が意外と多いので
僕は下記のような拡張メソッドを用意してそちらを使用するようにしています

ソースコード

/// <summary>
/// int 型の拡張メソッドを管理するクラス
/// </summary>
public static partial class IntExtensions
{
    /// <summary>
    /// 数値を指定された桁数で0埋めした文字列を返します
    /// </summary>
    /// <param name="self">対象の数値</param>
    /// <param name="numberOfDigits">桁数</param>
    /// <returns>数値を指定された桁数で0埋めした数値の文字列</returns>
    public static string ZeroFill(this int self, int numberOfDigits)
    {
        return self.ToString("D" + numberOfDigits);
    }
}

使い方

int num = 1234;
Debug.Log(num.ZeroFill(8)); // 00001234

ToString関数ではなくZeroFillという名前で関数を呼び出すようにすることで
後からソースコードを見た時に何をしている処理なのかがわかりやすくなります