日期:2014-05-19  浏览次数:20813 次

int space = t.IndexOf(' '); 这如何理解?单引号中为什么是空格?
用C#编写的计算器中的一段代码如下:

private   void   btnResult_Click(object   sender,System.EventArgs   e)  
{  
double   r=0;  
string   t=textBox1.Text;  
int   space   =   t.IndexOf( '   ');  
string   S1=t.Substring(0,space);  
char   op=Convert.ToChar(t.Substring(space+1,1));  
string   S2=t.Substring(space+3);  
double   arg1=Convert.ToDouble(S1);  
double   arg2=Convert.ToDouble(S2);  
switch(op)  
{  

case   '+ ':  
r=arg1+arg2;  
break;  
case   '- ':  
r=arg1-arg2;  
break;  
case   '* ':  
r=arg1*arg2;  
break;  
case   '/ ':  
if(arg2==0)  
    MessageBox.Show( "出错啦,分母不能为零哦! ");  
else  
r=arg1/arg2;  
break;  
}  
textBox1.Text=r.ToString();  
}

第五行的代码
int   space   =   t.IndexOf( '   ');  

这如何理解?单引号中为什么是空格?


------解决方案--------------------
自己分析下代码就知道了,按代码,textBox1.Text输入格式应该是这样的

123 + 321

在第一个操作数和操作符之间,操作符和第二个操作数之间各有一个空格
string S1=t.Substring(0,space); //取第一个操作数,这里为123
char op=Convert.ToChar(t.Substring(space+1,1)); //取操作符
string S2=t.Substring(space+3);//取第二个操作数,这里是321