姓氏“IndexOutOfRangeException未处理”

时间:2012-04-15 17:32:19

标签: c# indexoutofboundsexception unhandled

“IndexOutOfRangeException未处理”

string ebtocosname;
ebtocosname = webBrowser2.Document.GetElementById("Fullname").GetAttribute("value");
var NAMES = ebtocosname.Split();

 webBrowser1.Document.GetElementById("FirstName").SetAttribute("value", NAMES[0]);

 webBrowser1.Document.GetElementById("LastName").SetAttribute("value", NAMES[1]);     // This line here shows that IndexOutofRangeException was unhandled

“Fullname”的值只有一个名称。因此它只应在“FirstName”中写入NAMES [0]并在“LastName”上留空。

但是但是它停止了,它显示代码的最后一行是“IndexOutOfRangeException未处理”

而且,只有“Fullname”的值上有两个名称才能正常工作。

如果“Fullname”的值中没有NAMES [1],我怎样才能使它不会停止?

我要做的是将“Fullname”的值转换为“FirstName”和“LastName”。但有时“Fullname”的值不包含姓氏......然后我的程序停止并说“IndexOutOfRangeException未处理”

请帮帮我!我怎样才能完成这项工作呢?当“全名”中不存在变量NAMES [1]时,我写了很多IF语句来处理这种情况,但它仍然显示“”IndexOutOfRangeException未处理“

1 个答案:

答案 0 :(得分:3)

检查您的分裂是否产生了两个或两个值:

if(NAMES.Length == 2)
   webBrowser1.Document.GetElementById("LastName").SetAttribute("value", NAMES[1]);     

当然,这假设你没有其他问题,如:

  • 用户未输入任何输入
  • 用户输入了两个以上的名字
  • 用户输入了一些不可接受的字符

您应该更仔细地计划输入验证以捕捉任何其他奇怪的行为。