********************全部的代码实在windows应用程序下编写的***************************
string str;
listBoxStatus.Items.Clear();
//获取NetworkStream对象
networkStream = tcpClient.GetStream();
//得到读对象,并查找字节顺序标记,防止显示乱码
sr = new StreamReader(networkStream );
//得到写对象
sw = new StreamWriter(networkStream );
//读取服务器回送的连接信息
if (ReadDataFromServer() == null) return;
//向服务器发送用户名,请求确认
if (SendDataToServer("USER " +textBoxUser.Text) == false) return;
if (ReadDataFromServer() == null) return;
//向服务器发送密码,请求确认
if (SendDataToServer("PASS " +textBoxPassword.Text) == false) return;
if (ReadDataFromServer() == null) return;
//向服务器发送STAT命令,请求获取邮件总数和总字节数
if (SendDataToServer("LIST ") == false) return;
if ((str = ReadDataFromServer()) == null) return;
SendDataToServer("STAT");
string[] splitString = str.Split();//************ 原来为('')
//从字符串中取字串获取邮件总数
****************************************************************************
此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错
int count = int.Parse(splitString [1]);
此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错
****************************************************************************
// int count=Convert.ToInt32((splitString [1]));*********测试
//判断邮箱中是否有邮件
if(count >0)
{
//设置对应状态信息
buttonRead .Enabled =true ;
buttonDelete .Enabled =true ;
listBoxoperation.Items .Clear ();
groupBoxOperation .Text ="信箱中共有"+splitString [1]+"封邮件";
// 向邮件列表框中添加邮件
for (int i=0;i<count ;i++)
{
if((str=ReadDataFromServer())==null)return ;
splitString =str .Split (' ');
listBoxoperation .Items .Add (string .Format ("第{0}封邮件,{1}字节",splitString [0],splitString [1]));
}
listBoxoperation .SelectedIndex =0;
//读出字符结束
if ((str =ReadDataFromServer())==null ) return ;
}
在int count = int.Parse(splitString [1]);处提示Index was outside the bounds of the array.
请问应该怎样解决
string str;
listBoxStatus.Items.Clear();
//获取NetworkStream对象
networkStream = tcpClient.GetStream();
//得到读对象,并查找字节顺序标记,防止显示乱码
sr = new StreamReader(networkStream );
//得到写对象
sw = new StreamWriter(networkStream );
//读取服务器回送的连接信息
if (ReadDataFromServer() == null) return;
//向服务器发送用户名,请求确认
if (SendDataToServer("USER " +textBoxUser.Text) == false) return;
if (ReadDataFromServer() == null) return;
//向服务器发送密码,请求确认
if (SendDataToServer("PASS " +textBoxPassword.Text) == false) return;
if (ReadDataFromServer() == null) return;
//向服务器发送STAT命令,请求获取邮件总数和总字节数
if (SendDataToServer("LIST ") == false) return;
if ((str = ReadDataFromServer()) == null) return;
SendDataToServer("STAT");
string[] splitString = str.Split();//************ 原来为('')
//从字符串中取字串获取邮件总数
****************************************************************************
此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错
int count = int.Parse(splitString [1]);
此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错此句出错
****************************************************************************
// int count=Convert.ToInt32((splitString [1]));*********测试
//判断邮箱中是否有邮件
if(count >0)
{
//设置对应状态信息
buttonRead .Enabled =true ;
buttonDelete .Enabled =true ;
listBoxoperation.Items .Clear ();
groupBoxOperation .Text ="信箱中共有"+splitString [1]+"封邮件";
// 向邮件列表框中添加邮件
for (int i=0;i<count ;i++)
{
if((str=ReadDataFromServer())==null)return ;
splitString =str .Split (' ');
listBoxoperation .Items .Add (string .Format ("第{0}封邮件,{1}字节",splitString [0],splitString [1]));
}
listBoxoperation .SelectedIndex =0;
//读出字符结束
if ((str =ReadDataFromServer())==null ) return ;
}
在int count = int.Parse(splitString [1]);处提示Index was outside the bounds of the array.
请问应该怎样解决
if(splitString.Count>0)
{
在int count = int.Parse(splitString [1]);处提示Index was outside the bounds of the array.
因为你没有拆分成功,所以splitString 是null的
}
大哥
你总要给一个参数给他来拆分把
str='1111,22222,3333:000'
string[] splitString = str.Split(',');//************ 原来为('') ~~~
如果用str.Split('') 的話 下邊的index 處 可以用0~~~