Это вопрос по Java и С#. Мы все знаем, что Object Identity (==) проверяет, относятся ли два объекта к одному и тому же местоположению, а Obejct Equality (метод Equals) проверяет, имеют ли два разных (не идентичных) объекта одинаковое значение. Но в случае строкового объекта Object Identity и Равенство объектов одинаково. Например, ниже два логических выражения в операторах if возвращают true
string a="123";
string b="123";
if(a==b)
if(a.Equals(b))
Почему это так?? В чем рациональность такого дизайнерского решения?