这应该是自我解释的。我试图检测字符串foo的第一个字符是否为负号' - '。这只是测试它的测试代码。
private void button1_Click(object sender, EventArgs e)
{
string foo = textBox1.Text;
bool negativeValue = foo[1]==('-');
//bool negativeValue = foo[1].Equals ('-');
if (negativeValue == true)
{
label1.Text = "First char is negative !";
}
else if (negativeValue == false)
{
label1.Text = "First char is not negative !";
}
}
即使文本框中的第一个字符为' - ',结果也始终为false。为什么呢?
答案 0 :(得分:3)
C#中的索引查找是从零开始的。所以你应该致电:
foo[0] == ('-')
使用1
将查找第二个字符。
编辑:另外作为替代方案(也许更清晰),您可以随时使用:
foo.StartsWith("-")
无论你多么卑鄙,这都应该有效。 :)
(另外,如果你想避免用户输入的空间过多/意外,请考虑修剪文本输入)
答案 1 :(得分:2)
你使用了错误的索引。1
你实际上指的是第二个字符
使用0
bool negativeValue = foo[0]==('-');