只是想知道C#中运算符的规则在哪里实际定义。

例如。在哪里可以看到说==检查两个对象引用的代码?

我可以在例如String类,但现在我有兴趣了解“基本”情况。编译器是否明确知道该怎么做,因此没有代码可以使用Reflector之类的工具查看。

最佳答案

您无法在代码中看到它(除了SSCLI,我没有检查过)。

您需要查看C# language specification。例如:


  7.10.6引用类型相等运算符
  
  预定义引用类型相等
  运算符是:

bool operator ==(object x, object y);
bool operator !=(object x, object y);

  
  运算符返回结果
  比较两个参考
  平等或不平等。
  
  由于预定义的引用类型
  等价运算符接受
  类型object,它们适用于所有类型
  没有声明适用
  运算符==和运算符!=
  成员。相反,任何适用
  用户定义的相等运算符
  有效隐藏预定义
  引用类型相等运算符。

关于c# - 运算符在哪里定义(在C#中)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3787294/

10-16 16:27