2013-04-30 50 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");