Exemplo n.º 1
0
        /// <summary>
        /// 移動モードの追加ID文字列を取得する。
        /// </summary>
        /// <param name="moveMode">移動モード。</param>
        /// <returns>
        /// 追加ID文字列。追加不要ならば空文字列。移動モードが不正な場合は null 。
        /// </returns>
        public static string GetExtraId(this MoveMode moveMode)
        {
            switch (moveMode)
            {
            case MoveMode.Interpolation:
            case MoveMode.Rotation:
                return('@' + moveMode.GetName());
            }

            return(Enum.IsDefined(moveMode.GetType(), moveMode) ? "" : null);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 移動モード名を取得する。
        /// </summary>
        /// <param name="moveMode">移動モード。</param>
        /// <returns>移動モード名。移動モードが不正な場合は null 。</returns>
        public static string GetName(this MoveMode moveMode)
        {
            // 列挙値のメタデータ取得
            var info = moveMode.GetType().GetField(moveMode.ToString());

            if (info == null)
            {
                return(null);
            }

            // DisplayAttribute 属性が無いなら列挙値名をそのまま返す
            return
                (info.GetCustomAttribute <DisplayAttribute>(false)?.GetName() ??
                 moveMode.ToString());
        }