C#中操作员方法的方法名称

有没有人详细列出C#/ CLR给运营商的名字? (也许我的睡眠不足,但我似乎无法在Google上找到它)例如op_Addition,op_Subtraction。 此外,在其他文化中,这些会有什么不同吗?

我正在尝试创建一个可以添加/减去两个对象的类,我已经完成了所有原语 – 我只需要做’rest’。

非常感谢。

以下是MSDN中可重载运算符的完整列表。

—编辑—

在回应你的评论时,我相信你想要的就是这里。 搜索表6-1。

基于Expression类:

== op_Equality != op_Inequality > op_GreaterThan < op_LessThan >= op_GreaterThanOrEqual <= op_LessThanOrEqual & op_BitwiseAnd | op_BitwiseOr + op_Addition - op_Subtraction / op_Division % op_Modulus * op_Multiply << op_LeftShift >> op_RightShift ^ op_ExclusiveOr - op_UnaryNegation + op_UnaryPlus ! op_LogicalNot ~ op_OnesComplement op_False op_True ++ op_Increment -- op_Decrement 

接受的答案很好,因为它链接到一个可重载运算符列表,但它没有严格回答这个问题,因为它在编译时没有提供运算符的名称。

亚军的答案包括,但它是一个不完整的列表,并没有很好的组织。 为了完整起见,我创建了自己的列表,包括一些你可能期望过载的运算符,但事实并非如此。 该列表按运营商优先顺序排列,从最高(最紧)优先级到最低优先级。

 Outside of Order of Operations (used when necessary to coerce types) op_Implicit op_True op_False Unary (only one operator) ++ op_Increment (Includes preincrement and postincrement) -- op_Decrement (Includes predecrement and postdecrement) - op_UnaryNegation + op_UnaryPlus ! op_LogicalNot ~ op_OnesComplement op_Explicit await (Not overloadable) Multiplicative / op_Division % op_Modulus * op_Multiply Additive + op_Addition - op_Subtraction Shift << op_LeftShift >> op_RightShift Relational > op_GreaterThan < op_LessThan >= op_GreaterThanOrEqual <= op_LessThanOrEqual as (Not overloadable) is (Not overloadable) Equality == op_Equality != op_Inequality And & op_BitwiseAnd Exclusive Or ^ op_ExclusiveOr Inclusive Or | op_BitwiseOr Conditional And && (Not overloadable - use "implicit operator bool" or "operator true") Contional Or || (Not overloadable - use "implicit operator bool" or "operator true") Null-Coalescing Operator ?? (Not overloadable) Ternary ?: (Not overloadable - use "implicit operator bool" or "operator true") Assignment = (Not overloadable - for combined operator and assignment (such as +=), just use the operator (+)) 

注意:如果定义了两者,C#编译器更喜欢implicit operator bool而不是True和False运算符。

根据引用的StackOverflow问题 ,C#编译器也会发出/理解以下方法名称,但是

  • 我已经在Visual Studio 2015和C#6.0中运行测试,试图让它们工作,并且
  • C#5.0规范列出了“完整的一元[和二元]运算符函数名称集”(附录A,第469页),其中没有出现。
 Unary & op_AddressOf * op_PointerDereference Binary . op_MemberSelection -> op_PointerToMemberSelection op_SignedRightShift op_UnsignedRightShift = op_Assign *= op_MultiplicationAssignment /= op_DivisionAssignment %= op_ModulusAssignment -= op_SubtractionAssignment += op_AdditionAssignment <<= op_LeftShiftAssignment >>= op_RightShiftAssignment |= op_ExclusiveOrAssignment &= op_BitwiseAndAssignment |= op_BitwiseOrAssignment op_UnsignedRightShiftAssignment op_SignedRightShiftAssignment , op_Comma 

该网站提供了C#操作符的名称列表,显示了操作符,操作(名称),示例和结果: C#操作员列表