Оператор '==' нельзя применять к операндам типа 'Thickness' и 'string'

Я использую таймер для сделанной анимации, и, когда она достигает значения, я хочу остановиться. "Бир" - это моя форма, а "ZamanSayacıA" - мой таймер.

if (Bir.Margin == "510, 410, 0, 0")
        {
            ZamanSayacıA.Stop();
        }

И выдает следующую ошибку.

Оператор '==' нельзя применять к операндам типа 'Thickness' и 'string'

2 ответа

Решение

Вы не можете сравнить Thickness и string с == оператор, потому что оба разных типов. Но Thickness имеет конструктор, который пригодится:

Thickness th = new Thickness(510, 410, 0, 0);
if(Bir.Margin.Equals(th))
{

}

так как == Оператор перегружен, вы также можете использовать:

if(Bir.Margin == th)
{

}

Если у вас есть только строка "510, 410, 0, 0" и вам нужно получить Thickness:

double[] thLengths = Array.ConvertAll("510, 410, 0, 0".Split(','), double.Parse);
Thickness th = new Thickness(thLengths[0], thLengths[1], thLengths[2], thLengths[3]);

Bir.Margin это не string но Thickness, Вы не можете сравнить string экземпляр непосредственно к экземпляру Thickness,

Вы должны создать Thickness сравнивать Bir.Margin чтобы:

if (Bir.Margin == new Margin(510,410,0,0))
Другие вопросы по тегам