コガネブログ

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

【C#】 数値を加算して、範囲を超えた分は 0 からの値として処理して返す拡張メソッド

ソースコード

/// <summary>
/// int 型の拡張メソッドを管理するクラス
/// </summary>
public static class IntExtensions
{
    /// <summary>
    /// 数値を加算して、範囲を超えた分は 0 からの値として処理して返します
    /// </summary>
    public static int Repeat(this int self, int value, int max)
    {
        return (self + value + max) % max;
    }
}

使い方

int index = 0;
int max   = 3;
index = index.Repeat( 1, max); // 1
index = index.Repeat( 1, max); // 2
index = index.Repeat( 1, max); // 0
index = index.Repeat( 1, max); // 1
index = index.Repeat(-1, max); // 0
index = index.Repeat(-1, max); // 2

関連記事