只是想知道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/