好了,所以我在模擬這個想法把我的學校項目我有相當最近的一個,我不知道爲什麼它不是目前沒有工作。嘗試寫一個簡單的計算器...初學者使用C#,不能讓過去一個異常
我目前的計劃是使用DataManager來保存一個字符串數組,其中包含用戶從菜單中輸入的數字,然後將它們轉換爲整數,最後由操作員等通過它們進行描述。我還沒有弄清楚最後一部分,我不認爲這個想法會起作用,就像我說得那樣。但現在我無法讓程序將字符串值存儲在數組中。
當我運行程序我目前的目標是點擊「1」,然後按「Enter」鍵,當出現這種情況我想輸出看起來像「數量:1」,但我不斷拋出異常。
「‘’類型的未處理的異常出現在mscorlib.dll
其他信息:源陣列中的至少一種元素不能被拋棄到目標數組類型。 「
這裏是我的DataManager類的代碼....
public class DataManager
{
public ArrayList calculation;
public DataManager()
{
calculation = new ArrayList();
}
public void addNumbers(string n)
{
calculation.Add(n);
}
// public NumbersAndOperators[] getNumbers()
//{
// return //(NumbersAndOperators[])calculation.ToArray(typeof(NumbersAndOperators));
//}
public void removeNumbers(NumbersAndOperators n)
{
calculation.Remove(n);
}
public void addOperators(string o)
{
calculation.Add(o);
}
public NumbersAndOperators[] getOperators()
{
return (NumbersAndOperators[])calculation.ToArray(typeof(NumbersAndOperators));
}
public void removeOperators(NumbersAndOperators o)
{
calculation.Remove(o);
}
}
}
這裏是我的NumbersAndOperators類
public class NumbersAndOperators
{
private string number; private string operate;
public NumbersAndOperators(string n, string o)
{
number = n;
operate = o;
}
public void setNumber(string n)
{
number = n;
}
public void setOperate(string o)
{
operate = o;
}
public string getNumber(string n)
{
return n;
}
public string getOperate(string o)
{
return o;
}
}
}
下面的代碼是從我的窗體的代碼
public partial class Form1 : Form
{
public DataManager data;
public Form1(DataManager d)
{
InitializeComponent();
data = d;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button10_Click(object sender, EventArgs e)
{
string n = "0";
data.addNumbers(n);
}
private void button1_Click(object sender, EventArgs e)
{
string n = "1";
data.addNumbers(n);
}
private void button2_Click(object sender, EventArgs e)
{
string n = "2";
data.addNumbers(n);
}
private void button3_Click(object sender, EventArgs e)
{
string n = "3";
data.addNumbers(n);
}
private void button4_Click(object sender, EventArgs e)
{
string n = "4";
data.addNumbers(n);
}
private void button5_Click(object sender, EventArgs e)
{
string n = "5";
data.addNumbers(n);
}
private void button6_Click(object sender, EventArgs e)
{
string n = "6";
data.addNumbers(n);
}
private void button7_Click(object sender, EventArgs e)
{
string n = "7";
data.addNumbers(n);
}
private void button8_Click(object sender, EventArgs e)
{
string n = "8";
data.addNumbers(n);
}
private void button9_Click(object sender, EventArgs e)
{
string n = "9";
data.addNumbers(n);
}
private void division_Click(object sender, EventArgs e)
{
string o = "/";
data.addOperators(o);
}
private void multiplication_Click(object sender, EventArgs e)
{
string o = "*";
data.addOperators(o);
}
private void subtraction_Click(object sender, EventArgs e)
{
string o = "-";
data.addOperators(o);
}
private void addition_Click(object sender, EventArgs e)
{
string o = "+";
data.addOperators(o);
}
private void dec_Click(object sender, EventArgs e)
{
string n = ".";
data.addNumbers(n);
}
private void equals_Click(object sender, EventArgs e)
{
panel1.Controls.Clear();
NumbersAndOperators[] num = data.getNumbers();
Label tmp;
for (int i = 0; i < num.Length; i++)
{
tmp = new Label();
tmp.Text = "Number:" + data.getNumbers();
tmp.AutoSize = true;
tmp.Location = new Point(0, 85);
panel1.Controls.Add(tmp);
}
}
}
}
我明白任何和所有的意見,這是我還沒有看到一個問題,真是難上加難這之前從閱讀中瞭解。我現在一直在傻瓜上傻瓜一段時間,所有出現的問題我都不明白。
另外,我註釋掉了拋出異常的行
不要使用'ArrayList'或'NumbersAndOperators []',使用'List'。 –
這可能只是您的文章中的錯字,但... typeof(NumbersAndOper> ators)您的類型中有多個符號... – Tony
好眼,這個錯字僅在帖子中。我會解決它。 –