【C#】EnumのDescriptionからNameまたはValueを返す

EnumのDescriptionからNameまたはValueを返す

使い所さんはあまりないかも。

調べても出てこない(調べ方が下手)なので作りました。

 

実装

namespace Sample
{
    enum NumberEnum
    {
        [Description("Zero0")]
        Zero = 0,
        [Description("One1")]
        One = 1,
        [Description("Two2")]
        Two = 2,
        [Description("Three3")]
        Three = 3
    }

    static class EnumNumber
    {
        public static NumberEnum GetNumberEnum(string key)
        {
            return (NumberEnum)Enum.Parse(typeof(NumberEnum), key);
        }

        public static string GetName(this NumberEnum key)
        {
            return Enum.GetName(typeof(NumberEnum), key);
        }

        public static int GetValue(this NumberEnum key)
        {
            return (int)key;
        }

        public static string GetEnumDescription(this NumberEnum key)
        {
            FieldInfo fi = key.GetType().GetField(key.ToString());
            var attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
            var desciptionString = attributes.Select(n => n.Description).FirstOrDefault();
            if (desciptionString != null)
            {
                return desciptionString;
            }
            return key.ToString();
        }

        public static string GetDescriptionEnumName(string description)
        {
            foreach (NumberEnum Value in Enum.GetValues(typeof(NumberEnum)))
            {
                if (GetEnumDescription(Value) == description)
                {
                    return Enum.GetName(typeof(NumberEnum), Value);
                }
            }
            return ""; // 不一致の場合に返す値
        }

        public static int GetDescriptionEnumValue(string description)
        {
            foreach (NumberEnum Value in Enum.GetValues(typeof(NumberEnum)))
            {
                if (GetEnumDescription(Value) == description)
                {
                    return (int)Value;
                }
            }
            return 0; // 不一致の場合に返す値
        }
    }
    
}

出力結果

?EnumNumber.GetEnumDescription(NumberEnum.One)
"One1"

?EnumNumber.GetDescriptionEnumName("One1")
"One"

?EnumNumber.GetDescriptionEnumValue("One1")
1

最後に

関係ないけどはてなブログってpreタグで囲めばコードハイライト使えるしやっぱ良いですね

あとはゴリ押し実装なのでもっといい方法があると思います。

【雑記】CPUとメモリを交換しました。

前置き

思いつきでCPUとメモリを交換しました。

 

f:id:waaaaaaaav:20200917210534p:plain

換装前の環境

CPUはAMD Ryzen 7 2700X

1世代前のコスパ最強CPUですね。DTMで重いシンセいっぱい使うとかではない限り、現役でも全然使えると思います。

 

メモリはCMK16GX4M2A2666C16Rで、32GB分。

 

換装後の環境

CPUはAMD Ryzen 9 3950X

ちなみに同じようなスペックでIntel買おうとすると10万普通に超えてくるので相当安いです。

 

メモリはTrident Z Neoを64GB分購入しました。

第3世代Ryzen向けの製品なので安定を取りました。安定って、大事だよね!

 

その他

マザーボードASUS PRIME X470-PRO

1世代前の奴ですが、BIOSをアップデートしておくことによって第3世代AMD CPUも乗っかります。

ちなみにBIOSアップデートし忘れたまま対応してないCPU乗っけると画面点かないです。

(1回やらかした笑)

 

感想とあとがき

DAWIDEFL Studio・VisualStudio・Eclipse)の動作が軽快!

ゲーム(FF14)は、、、これからテストしますが、2700X時代から重いと思ったことが無かったので余り変わらなそう。

とりあえず全体的に軽くなった感じがしてます。色々と捗りそうです。

Serum10個刺しのプロジェクトでもCPU使用率はなんと50%以下・・・素晴らしいよォ・・・。

これで当分CPUとメモリは交換する必要がなさそうなのでPC全体を組み替えるまでこれで行きます。

次のパーツ交換はRTX3000番台が出たときかな。電源が足りなさそうなので電源も一緒に交換する予定です。

【FF14】エデン零式:共鳴編 振り返り

注:この記事は零式踏破時に下書きとして残していたものをまとめとして編集した物です

 

はじめに

今更感はありますが、エデン零式共鳴編を無事全層クリアできました。

今回仕事の都合で身内の早期攻略固定への参加ができなかったので、

どうせなら今回の零式はやったこと無いジョブで挑もう、出遅れてるし、、、

ということで白魔道士で挑戦。こうして俺のヒーラー人生が幕を開けた────

 

1層 vs ラムウ

4/25 踏破(練習期間 2日

オートアタックが痛くタンクのHP管理が特に難しく感じました。

ギミックは覚えゲーのみでそこまで難しくなかったので、

ヒーラーに慣れるという意味ではとてもいい難易度だったかと思います。

f:id:waaaaaaaav:20200811105415p:plain

 

2層 vs イフガル

5/2 踏破(練習期間 3日

初見練習PT入ったら1発目で合体フェーズまで行けた謎の層でした。

1層に比べるとヒールはものすごく楽でした。

コンフラ後だけは比較的忙しいですが、今のPT火力だとその辺りで倒しちゃうのであまり関係ない印象。

f:id:waaaaaaaav:20200811105435p:plain

 

3層 vs ダークアイドル

5/4 踏破(練習期間 2日

とにかく全体の戻しが辛い。

と思ってましたが、PTが1箇所に集まってることが多かったのでケアルガをうまく使って戻してました。

雑魚フェはアサイラムを移動先に置いたり、詠唱ヒールを上手く全体攻撃着弾前に唱えることで、

移動しながらのヒールのためにラプチャを取っておくことで耐えしのぎました。

最後の回転と言い、この層は動かされる箇所が多くて辛い。

f:id:waaaaaaaav:20200811105452p:plain

 

4層 vs シヴァ

5/23 踏破 (練習期間 16日

全てのコンテンツが過去になりました。

ヒールワークを組んでいても自分含め事故る確率が高く、予定通りヒール出来ないのが現実でした。

軽減の大事さをよく学べたコンテンツなので良かったかなと思います。

f:id:waaaaaaaav:20200811105507p:plain

 

総評

ヒーラーかつ詠唱職は初めてでしたが、やればやるほど面白いジョブだなと思いました。

ギミックミスした人に投げるヒールとか、PTの立て直しとか、

とにかくアドリブが多いので、その場その場で考えながらプレイするのが楽しかったです。

DPSしかやってなかったときにはわからなかった軽減の大切さもわかりましたし、

全体で何が起きているのかがきちんと見えたのも良かったと思います。

今回は絶や全ジョブのレベリング等も有り時間が取れず色塗りとまでは行かなかったのですが、

次回の零式では色塗りもちゃんとやってみたいです。終わり。

f:id:waaaaaaaav:20200811105643p:plain

 

【雑記】Razer製品を色々と使ってきて

前置き

僕はRazerのあのデザインと種類の豊富さが好きです。

自分のデスクもかつてはたくさんの緑に溢れていました。

 

ただ某ショッピングサイトのレビューだと耐久性が低い、使いづらい、見た目だけみたいな事が書かれていますよね。

その辺り実際どうなのかというのをちょっと書き連ねていこうかと思います。

 

Mamba Wireless

使用期間:1年未満

使用用途:ゲームプレイ時以外

無線の5ボタンマウスです。

手にフィットする形状と軽さ、ボタンの押しやすさは申し分無く快適です。

充電の持ちもそこそこ良く、毎日使っていても3日に1回くらいコード繋いで置けば良いです。

ただし1年経たずに左クリックがチャたりました。

耐久性にのみ問題があるでしょう。

 

Razer Naga Trinity

使用期間:8ヶ月

使用用途:ゲームプレイ時

サイドボタンが換えられるゲーミングマウスです、12ボタンのサイドパネルを換装して使用。

重量はやや重め、慣れるまでに時間を要しますが、慣れれば普通に使えるでしょう。

このマウスそれ以外に非常に深刻な問題が2点あって1点はMamba Wirelessと同じく直ぐにチャタリングを起こします。

もう1点はサイドパネルの接触が最悪で使っている最中に反応しなくなります。

癖がある上に耐久性と設計にも問題ありとかもうゴミ以外の何者でも無いですね。

これ買おうか悩んでる人ならLogicoolのG600買うことをオススメします。

 

Razer Blackwidow

使用用途:全部

使用期間:1年半

何の変哲もないメカニカルキーボードです。

強いて言えば打鍵音が大きいですがそれはメカニカルキーボード全てに言える事なのでそれ気にするくらいならメカニカルキーボード買うなと言いたいです。

CherryMXと互換性があるため色々カスタマイズも出来るのも〇。

耐久性も問題なく、見た目もカッコ良い。オススメ出来るキーボードの1つと言えるでしょう。

 

Razer Orbwever Chroma

使用用途:ゲームプレイ時

使用期間:1年弱

Razerから出てる左手デバイスです。

手のひらが当たるパッド部分とアナログスティック部分が可動式で私のように手の大きさが女性並みでも問題なく使用する事が出来るのが素晴らしいです。

残念なことにアナログスティックだけがかなり早い段階で逝ってしまい耐久性の無さがまたしても………

使いやすいと思った製品なので非常に残念です。

 

Razer Siren X

使用用途:ボイスチャット全般

使用期間:1年

Razerから出ているスタンドマイクです。

1年程利用した時点でブツブツブツブツという雑音が常に入るような症状が出ています。

故障前のレビューですが、マイクの感度調整を上手くやらないと余計な音拾いまくります。

これでもかってくらい雑音入ります。音質も別に良くないです。

こちらももちろんオススメしません。

 

結論

Razerは盆栽。緑だしね。

真面目な話、使いやすいデバイスはもちろんあるのだけれども、それ以上に壊れやすすぎて使い物になりません。

ゲームをハードにプレイするような人はRazerじゃなくて最初からLogicool買いましょう。

以上、終わり!閉廷!

【雑記】REFLEC BEAT plus目的でiPad Pro 第2世代(12.9インチ)を買った話

REFLEC BEAT plus目的(音ゲー目的)でiPad Pro 第2世代(12.9インチ)を買った話をします。

結論から言うと大当たりです。

 

1.無反応・誤反応がほぼ無い

これ、自分の手汗等のコンディションに左右されるのでほぼ無いと書いていますが、

無反応・誤反応は全く無いと言っても良いレベルです。

iPad Air 2でプレイしていたときはロングが押しているのに勝手にすっぽ抜けていったり、Lisa-RICCIAやVALLIS-NERIAなどのお団子縦連が全部反応しないなんてことも。

Proなら縦連も押せていれば素直に反応します。

ただ、アプリケーション側のバグのTOPノーツと通常ノーツが被った場合に誤反応するという現象は健在です。

スコア詰める際はバグ誘発する配置が来ないように祈りましょう。青龍の譜面許さん。

 

2.処理落ちしないので判定が素直

これ処理能力が上がったから当たり前っちゃ当たり前なんですけど、特に恩恵を感じたのは低レベル帯でのエクセ狙いです。

iPad Air 2だと意外と判定ブレブレです。エクセ義務教育レベルのSakura Reflectionですらエクセきついです。

判定が素直とはまたちょっとベクトルが違いますが、処理能力が上がったおかげかショット音が消える現象も無くなってます。これもまじで優秀。

 

3.画面が大きいので密度の高い譜面が認識しやすい

だいたい9.7インチの大きさのノーツサイズ大が12.9インチのノーツサイズ標準と同じくらいです。

これ何かと言うとノーツの大きさを変えずに画面だけデカく出来るということなんです。

ノーツサイズの大きさって意外と重要で、小さくすればするほど認識は上がりますが押し漏れが増えます。

なので僕みたいに9.7インチでノーツ最大サイズを利用していたタイプの人ならかなり快適にプレイが出来るかと思います。

 

4.確認している不具合など

TOPノーツと通常ノーツが被った場合に誤反応する(上述の1番でも解説)

Lightningケーブルを利用して充電や画面ミラーリングをしながらプレイするとノーツが反応しなくなる(従来から。おそらくiPad自体の不具合?解決方法ねえかな。)

アプリケーションを再起動すると爆発エフェクトのサイズがリセットされる(これ前からあったっけ・・・?)

まあもう開発終わっちゃってるみたいなので何言っても無駄っすけどね!!!

 

以上!

【雑記】Suicaに定期券情報が無いと新幹線に乗れない

今日は所用で夜まで秋葉原にいた。
帰ろうと思い電車を調べると上野東京ラインが人身事故で停まっていた。
普段から都内に出勤しているので上野東京ラインが止まってる事象事態は慣れっ子だった。
上野東京ライン京浜東北線が停まった時に混雑と遅延を回避する最適解は上野〜大宮間の新幹線に乗ること。
ということで、上野駅の新幹線の改札にタッチ。

エラー。

何度やってもエラー。

駅員さん「Suicaに定期券情報が登録されてないとSuicaで新幹線には乗れないですよ。」

僕「マジかよ」

見かねた駅員さんが声をかけてくれた。優しい。
ちょうどコロナでテレワーク期間だったため、僕のSuicaには定期券情報が無かったのである。(そんな前提条件知らなかった)

結局、京浜東北線に乗って帰宅した。またひとつ賢くなってしまったな……