2013-04-30 63 views
-3

它尝试登录时出现此错误。C# - 基于零的字符串错误

索引(基于零)必须大于或等于零并小于参数列表的大小。

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     //string name = textBox1.Text; 
     string.Format ("{0} {1}", "Best", "Regards"); 

     if (textBox1.Text == "Ryan" && textBox2.Text == "password") 
     { 
      MessageBox.Show(string.Format("Welcome {1}")); 
     } 

    } 
} 
+0

@tnw真是说 – Freelancer 2013-04-30 12:47:17

+0

对不起,你是对的。我自己标记了它。 – 2013-04-30 14:12:41

回答

8

string.Format("Welcome {1}")

需要一个自变量

string.Format("Welcome {0}", textBox1.Text)

+0

这个停止了错误。但是如果它没有显示我告诉它{0}的文本是“最好的”,那么它有什么意义呢? 还是我误解了这完全是什么? – 2013-04-30 13:14:30

+0

?请帮忙,因为我现在很困惑 – 2013-04-30 13:18:34

+0

我想你已经误解了0的作用了,零是对逗号后面的参数的引用,这里是一个很好的例子 http://www.techotopia.com /index.php/Formatting_Strings_in_C_Sharp – Sayse 2013-04-30 13:46:44

5

错误在这行抛出:

MessageBox.Show(string.Format("Welcome {1}")); 

,因为你已经使用了占位符{1}但没有带提供了一个理论t到string.Format函数。除此之外,你还没有开始与指数0

你必须提供一个参数,并与指数0开始:

MessageBox.Show(string.Format("Welcome {0}", textBox1.Text)); 
2
MessageBox.Show(string.Format("Welcome {0}", "some text")); 
3

你需要做到以下几点:

string.Format("Welcome {0}", "some value here");