Оператор '==' нельзя применять к операндам типа '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))