我有這個簡短的Windows窗體應用程序代碼,我無法正常工作。它使用類的實例(作爲臨時存儲位置)來填充相同類類型的數組。它有一個按鈕和一個文本框。如果按下按鈕,文本將保存在名稱成員中並添加到陣列中。 如果名稱被另一個數組成員佔用,它應該顯示一條消息「name taken!」而不是將它添加到數組中。問題是這種情況檢查總是正確的! 如果我們在「嫁」型,調試器顯示爲什麼我的類數組元素的行爲像一個指針? (C#)
if (examleArray[i].Name == temp.Name)
等同於:
if ("Marry" == "Marry")
彷彿一個指向其他。爲什麼是這樣?我如何解決它?謝謝!
namespace errorexample
{
public partial class Form1 : Form
{
example temp = new example();
example[] examleArray = new example[10];
int examleArrayIndex = 0;
bool NameTaken = false;
public Form1()
{ InitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
{
temp.Name = textBox1.Text;
NameTaken = false;
for (var i = 0; i < (examleArrayIndex); i++)
{
if (examleArray[i].Name == temp.Name)
{
NameTaken = true;
MessageBox.Show("Name taken!");
}
}
if (NameTaken == false)
{
examleArray[examleArrayIndex] = temp;
examleArrayIndex++;
}
}
}
public class example {
public string Name;
}
}
因爲在你的表單中只有一個'example'的實例,所以你會繼續重用它 – harold
因爲你有一個引用數組,所有指向同一個'example'對象,因爲你只創建一個。 – juharr