看板 C_Sharp 關於我們 聯絡資訊
剛剛在練習書上的習題~他要求建立一個stack,然後類別中的要建構子 是用來配置堆疊的陣列大小, 但是我發生一個問題就是,配置陣列如果放在建構子,那類別中的其他的函式如果用 到此陣列的就會說他沒有宣告,因此必須要拿出來放在成員中配置,但問題是 一開始並不知道陣列大小,是要給使用者輸入才會為這個陣列配置記憶體, 但偏偏宣告陣列又要給他初始值陣列大小 0rz 那我到底應該怎麼辦..... 有哪為大大可以指導一下嗎? 以下是我的主要程式碼 namespace ConsoleApplication2 { class stack { public int num=0; //用來存放陣列元素的索引值 public int[] anyData={0}; //宣告陣列,類別的成員函式才能使用他 (陣列大小未知) public stack(int n2) //建構子 { int[] anyData = new int[n2];//由於題目規定,且現在才能知道陣列大小, 所以又宣告配置一次(這樣感覺有錯...) } public void push(int n) { anyData[num] = n; num++; } .................... } class Program { static void Main(string[] args) { Console.WriteLine("請輸入陣列大小:"); int n; n=int.Parse(Console.ReadLine()); stack s = new stack(n); Console.WriteLine(); string k = "Y"; int sel; while (k.ToUpper() == "Y") { Console.WriteLine("請選擇功能:(1.輸入2.刪除3.印出)"); sel = int.Parse(Console.ReadLine()); switch (sel) { case 1: //主要是在放入元素這邊都會出問題 { Console.WriteLine("請輸入數字:"); int n1 = int.Parse(Console.ReadLine()); s.push(n1); break; } case 2: ................. } } Console.ReadLine(); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.60.253.80
james732:int[] anyData = new int[n2]; 改成 05/02 21:33
james732:anyData = new int[n2]; 即可 05/02 21:33
andy910389:可以了~~謝謝囉 05/03 10:44