我最近发现自己想知道是否存在类似于三元运算符的现有运算符,但用于枚举......这可能是一个处理工具,用于编写更少的代码来处理枚举的值......
我找不到任何东西,所以我提出了这个问题......
如何构建自己的运算符来处理枚举,如下所述?
进行以下枚举:
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# 编译器并行使用吗?
- 假设我可以创建运算符,我可以使用“?” 作为枚举的运算符,即使它被标准的三元运算用于布尔值?
- 我知道我可以去谷歌搜索这个,但如果有人对好的编译器创建文章有任何建议,那就太好了。
- 编辑 -
我只是想把它放在这里...我知道如果这阻止我进行开发是不切实际的...我知道如何通过其他几种方式实现...我想要的是一些帮助了解我实现我所概述的目标的起点......仅仅是为了尝试编写代码并了解更多关于我日常使用的框架的乐趣。