[解決済み] Enumに拡張メソッドを追加する方法
2022-04-26 11:01:48
質問
次のようなEnumのコードを持っています。
enum Duration { Day, Week, Month };
このEnumに拡張メソッドを追加することはできますか?
どのように解決するのですか?
これによると サイト :
拡張メソッドは、既存のクラスのメソッドを、あなたのチームの他の人が実際に発見して使用できるような方法で記述する方法を提供します。列挙型は他のクラスと同じであるため、拡張できることはそれほど驚くことではありません。
enum Duration { Day, Week, Month };
static class DurationExtensions
{
public static DateTime From(this Duration duration, DateTime dateTime)
{
switch (duration)
{
case Day: return dateTime.AddDays(1);
case Week: return dateTime.AddDays(7);
case Month: return dateTime.AddMonths(1);
default: throw new ArgumentOutOfRangeException("duration");
}
}
}
一般的に列挙型はベストな選択ではないと思いますが、少なくともこれでswitch/if処理の一部を一元化し、より良いものができるまでそれらを少し抽象化することができます。値が範囲内であることをチェックすることも忘れないでください。
詳細はこちら こちら をMicrosft MSDNでご覧ください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] C#のenum内部のメソッド