Происходит следующее: string
- это object
, но это не тот же тип object
, что и StatsServer
, поэтому Visual Studio запутывается и думает, что переменная localComputerName
является проблемой, а не server
.
Исходя из того, что я могу определить, он решает это по параметрам метода Equals
, а не по типу данных из переменной, к которой применяется Equals
. (IMO, это задом наперед, но, очевидно, у Microsoft есть свои причины, и, вероятно, что-то связано с тем, как Equals
перегружается / распространяется на все object
с или что-то в этом роде.)
В этом случае,ошибка - красная сельдьЧто должно произойти, так это то, что я должен получить доступ к свойству / столбцу ServerName
server
, так как это string
и содержит данные, которые я действительно хочу для сравнения:
if (localComputerName.Equals(server.ServerName, StringComparison.OrdinalIgnoreCase))
Моральистория заключается в том, чтобы убедиться, что ваши object
имеют один и тот же тип данных, и просмотреть всю строку кода, прежде чем предположить, что JIT-компилятор на 100% точен.