A == B vs B == A,有什么区别

Chu*_*urk 0 c# java programming-languages

所以长话短说.一位教授在课堂上将这个问题作为一个讨论启动者.除了明显的

B = new SomeClass("B"); // But B can be null, can can be new SomeClass("A");
A = new SomeClass("A");
A==B
Run Code Online (Sandbox Code Playgroud)

在比较时会保证没有NPE,使用B == A而不是A == B的原因是什么?

A和B的类型相同,这与语言无关.因此,您可以假设Java的A.equals(B),或者C或C++中的等效语法等....

不,这不是功课.

Ted*_*opp 10

在Java中,A == BB == A始终具有相同的语义.在C#(具有运算符重载)中,如果,例如,B是类的子类的实例,则可能存在差异A.

注意,这A.equals(B)不等于A == B.