【问题标题】:Is it possible to make custom operators in C#? [duplicate]是否可以在 C# 中制作自定义运算符? [复制]
【发布时间】:2011-09-01 02:06:54
【问题描述】:

可能重复:
Is it possible to create a new operator in c#?

我想知道是否可以在 C# 中创建自定义运算符,例如 if (a atleast 5)

上面的语句会写成if a is at least 5 then do this.

我正在寻找更多的关键字类型运算符,例如 typeofis

【问题讨论】:

  • 您为什么要这样做?我假设你的例子不是真正的原因......> = 5 ..
  • 它更像是一种可读性类型的东西,真的试图让这种语言成为我自己的。

标签: c# operators keyword operator-keyword


【解决方案1】:

不,C# 不允许自定义运算符。您可以重载某些预先存在的,但不能像在 Haskell 或 F# 中那样创建自己的。

【讨论】:

  • 如果使用 Visual Studio 有没有办法用宏来做到这一点?或任何类型的环境插件?
  • @Kyle Uithoven:不。那怎么可能呢?如果它是一个 VS 宏,则必须将常规 C# 代码与函数调用一起放入。您无法回避 C# 不允许您定义自定义运算符的事实(感谢 $DEITY 它没有)。
  • @Kyle c# 也不支持宏(根据设计,并且有充分的理由)。当然,添加足够多的上游自定义工具,您可能可以做任何您想做的事情:我不会。
  • @Kyle:不,没有办法像那样修改 C#。不过,您可能会考虑查看扩展方法,以允许您输入 if (a.atleast(5))
  • 程序员应该思想开放 :P 来吧,有什么害处?!实际上,我完全不同意那些不想在这里使用自定义运算符的偷窥者。如果正在定制的操作员允许开发团队定制他们的应用程序域的编程技术,那就去做吧!我认为作为书呆子,我们太着迷于试图让我们的代码看起来很聪明(我自己肯定有罪),而我们需要至少在表面上看起来尽可能新。这让新人不会被吓倒,并获得更多的开发者内部信任!信任 = 好生意!! :D
猜你喜欢
  • 2010-12-03
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 2012-05-04
  • 1970-01-01
相关资源
最近更新 更多