C# if语句和>运算符有问题

C# if语句和>运算符有问题,c#,wpf,C#,Wpf,我试图写一个if语句,但是我的变量有问题。它表示运算符>不能应用于int和string类型。代码位于下面。两个变量都显示一个int if (e.CmsData.Skill.InQueueInRing > "0") { Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { callsWaitingData.Text = e.CmsData.Skill.InQueueInRing.ToString()

我试图写一个if语句,但是我的变量有问题。它表示运算符>不能应用于int和string类型。代码位于下面。两个变量都显示一个int

if (e.CmsData.Skill.InQueueInRing > "0")
{
    Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { callsWaitingData.Text = e.CmsData.Skill.InQueueInRing.ToString(); }));
    callsWaitingData.Foreground = new SolidColorBrush(Colors.Red);
}
else if (e.CmsData.Skill.AgentsAvailable > "0")
{
    Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { callsWaitingData.Text = e.CmsData.Skill.AgentsAvailable.ToString(); }));
    callsWaitingData.Foreground = new SolidColorBrush(Colors.Green);
}
else
{
    callsWaitingData.Text = "0";
    callsWaitingData.Foreground = new SolidColorBrush(Colors.Yellow);
}

这个错误真的无法得到更多的描述

运算符>不能应用于int和string类型

换成

if (e.CmsData.Skill.InQueueInRing > 0)

那么布尔逻辑的两边都是一个整数。

为什么要比较0的字符串表示形式,而不是数字0?如果e.CmsData.Skill.InQueueInRing>0,则应更改为e.CmsData.Skill.InQueueInRing>0。因此,all if块应该这样更改。InQueueInRing是一个Int,0是一个字符串。对于C来说,这不是一个可协商的差异,也不符合您的假设谢谢您指出我的错误。尽管可能很简单。非常感谢。@mcavanaugh418不客气。理解错误消息可能很简单,但这是一门通过经验学习的艺术。我们在某些时候都犯过类似的错误。你知道为什么if语句中的颜色没有改变吗?它的工作除了colors@mcavanaugh418有两个问题。我一点也不了解WPF。你的问题中没有足够的信息来回答这个问题。你应该问一个新问题,确保你提供足够的细节让人们回答
if (e.CmsData.Skill.InQueueInRing > 0)