我正在使用计时器制作动画,并且当边距达到该值时,我应该停止。 “Bir”是我的形状,“ZamanSayacıA”是我的计时器。运算符'=='不能应用于'厚度'和'字符串'类型的操作数
if (Bir.Margin == "510, 410, 0, 0")
{
ZamanSayacıA.Stop();
}
并给出以下错误。
算“==”不能被施加到型“厚度”和“字符串”
我正在使用计时器制作动画,并且当边距达到该值时,我应该停止。 “Bir”是我的形状,“ZamanSayacıA”是我的计时器。运算符'=='不能应用于'厚度'和'字符串'类型的操作数
if (Bir.Margin == "510, 410, 0, 0")
{
ZamanSayacıA.Stop();
}
并给出以下错误。
算“==”不能被施加到型“厚度”和“字符串”
不能与==
操作比较一个Thickness
和string
,因为两者是不同的类型。但是,Thickness
有派上用场构造:
Thickness th = new Thickness(510, 410, 0, 0);
if(Bir.Margin.Equals(th))
{
}
因为==
operator超载,你也可以使用:
if(Bir.Margin == th)
{
}
如果你只有一个字符串"510, 410, 0, 0"
,你需要得到a 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))
“Bir.Margin”的类型是什么?它不是一个字符串,显然没有隐式转换为字符串 –
尝试if(Bir.Margin == new Margin(510,410,0,0))......因为您正在使用边距进行comapring一个字符串,无法完成 –
@GiladGreen:它是'Thickness';) –