Оператор ==
не является синонимом, это оператор, который определен для разных типов.
Оператор ==
определен для строк, а затем он действительно использует Equals
method:
public static bool operator ==(string a, string b) {
return Equals(a, b);
}
Однако в вашем коде вы не используете оператора по строкам, вы используете его на объектах, поэтому вы получаете оператор ==
, определенный для объектов, который использует ReferenceEquals
, чтобы выполнить сравнение.
Какая перегрузка используемого оператора определяется во время компиляции, поэтому это тип переменных, которые определяют перегрузку, а не фактический тип объектов, которые указывают точки к.
Вам не нужно использовать INDIRECT
из MID
, если вы можете использовать некоторые механизмы блокировки:
=FIND("site",$G1)>0
Здесь вы увидите, что активная ячейка - это A1, поэтому соответствующая строка Excel будет сравнивать ее с G1, когда условное форматирование смотрит на ячейку A2, она будет сравнивать ее с G2.
Когда условное форматирование смотрит на ячейку B2, оно снова сравнивает ее с G2, потому что G была заблокирована (через символ $).
Тем не менее, ваша формула не работает, потому что FIND("site","g"&ROW(),1)
не работает. Второй аргумент дает текст g#
(где # представляет номер строки), и поиск не удается).