私は最近、三項演算子に似た既存の演算子があるかどうか疑問に思いましたが、列挙用です...これは列挙の値を処理するためのコードを少なくするためのハンドルツールである可能性があります...
何も見つからなかったので、質問をします...
以下に概説するように、列挙を処理するための独自の演算子を作成するにはどうすればよいですか?
次の列挙を取ります。
public enum ComTypes { Call, Email, SMS }
ComTypeに基づいてポップアップダイアログのタイトルを割り当てる必要があるとしましょう。現在、私は次のように三項演算子を使用できます。
ComTypes comType = ...;
var title = comType == ComTypes.Call ? "Make a Call" :
comType == ComTypes.Email ? "Send an Email" :
/* ComTypes.SMS */ "Send a Text";
私が欲しいのは、列挙用の新しい演算子を使用して、よりクリーンで簡潔な形式を取得することです...次のようなものです。
ComTypes comType = ...;
var title = comType ?
.Call: "Make a Call",
.Email: "Send an Email",
.SMS|default: "Send a Text";
ですから、私の最初の質問は次のとおりです。
- カスタム演算子を作成して、通常のC#コンパイラと並行して使用できますか?
- 演算子を作成できると仮定すると、「?」を使用できますか?ブール値の標準のTernaryOpで使用されている場合でも、列挙の演算子として?
- 私はこれのためにグーグルに行くことができることを知っています、しかし誰かが良いコンパイラ作成記事について何か推薦があればそれは素晴らしいでしょう。
- 編集 -
私はこれをここで取り上げたいだけです...これが私が開発を行うのを妨げていたら実用的ではないことを知っています...私はこれを他のいくつかの方法で達成する方法を知っています...ここで私が欲しいのはいくつかの助けです私が概説したことを達成するための私の出発点を理解する...それをコード化して、私が日々使用しているフレームワークについてもっと学ぶことを楽しむためだけに。