我想添加此代码,但它不起作用。这是一个聊天系统,当一个玩家在他的文本框(聊天)中连接到我想要的服务器以显示HelloMsg
时,但是当我启动该程序时,我得到一个错误。
抱歉我的英文不好!
#region ' Read Configuration.ini '
StreamReader Sr = new StreamReader(Database + "\\Configuration.ini");
string line = null;
while ((line = Sr.ReadLine()) != null)
{
if (line.Substring(0, 12) == "HelloMessage")
{
string[] StrMsg = line.Split('=');
HelloMsg = StrMsg[1].Trim();
}
}
Sr.Close();
答案 0 :(得分:2)
String.Substring
需要两个参数,即起始索引和长度。在两种情况下会出现此异常:
startIndex
加length
表示不在此实例中的位置。startIndex
或length
小于零。所以你应该处理字符串的长度小于12:
while ((line = Sr.ReadLine()) != null)
{
if (line.Length >= 12 && line.Substring(0, 12) == "HelloMessage")
{
string[] StrMsg = line.Split('=');
HelloMsg = StrMsg[1].Trim();
}
}
更可读,更安全的方法是使用String.StartsWith
:
if(line.StartsWith("HelloMessage"))
{
// ...
}