看板 C_Sharp 關於我們 聯絡資訊
真的是 字母 字元集 嗎? 如果是的話....... 1. char[] 有沒有滿足你的需求? @@ 2. 其實他也等於你定義叫 "字母" 的 struct 然後宣告 字母[] myChars = new 字母[個數]; 3. 如果要定義成 struct.. public struct SChar { // 建構子 public SChar(char c) { Data = c; done = false; } // 記錄的資料 char Data; // 是否被取走 bool done; // 取值 public chat Get() { get { done = true; return Data; } } // 是否被取走 public bool IsDone() { return done;} // 要重來時設定 public void Regression() { done = false;} } PS. 可以把 public bool IsDone() { return done;} 改成 public bool IsDone() { done = !done; return !done;} 這樣 問一次 IsDone() 就可以順便修改 done Regression() 可以拿掉 ※ 引述《F23ko (純潔)》之銘言: : 自己寫的小程式 : 能把輸入的字母做排列組合 : EX: : 輸入:ABB : 輸出:ABB BAB BBA : http://www.badongo.com/file/21299172 : 裡面定義一個叫做字母的class : 用來記錄使用者輸入的字母,以及上層遞迴是否有「取走」這個字母 : public class 字母 : { : public char 字母元件; : public bool 被取走; : public 字母(char a) : { : 字母元件 = a; : 被取走 = false; : } : public void 拿走() : { : 被取走 = true; : } : public void 放回() : { : 被取走 = false; : } : } : 之後,會建立一個List<字母>欄位,並在建構子把使用者輸入的字母放進去 : List<字母> 取樣陣列 = new List<字母>(); : public 字元排列(string 字元集) : { : foreach (char 輸入字母 in 字元集) : { : 取樣陣列.Add(new 字母(輸入字母)); : } : } : for (int i = 0; i < 取樣陣列.Count; i++) : { : (中略)................ : 取樣陣列.ElementAt(i).拿走(); : (中略)................ : } : 在這裡,把class改成struct會造成錯誤 : 在執行「取樣陣列.ElementAt(i).拿走();」時 : public bool 被取走; 並不會變成true : 我在想.... 可能是struct是實質類型、class是參考類型的關係 : 我想請問,如果在這種狀況下,硬要把「字母」定義成struct : 要怎麼寫? -- ▇▃▂▁ ▁▂▃▇ ▃▆ ▆▃ ╦ ╗█▇▆▃ ▃▅▆▇╔╗ ◣∥◢║ ║ ╦ ╔ ╦╗ ╦ ╔ ╗ █◣ ▼▼ ║ ║ ║ ╠ ║ ║ ║ ◥█◤▲▲█◤ ║ ║ ╩ ╩ ╩ ╝╚ ╝ ψyzelly ╩ ╝▁▂▃▄▄ ▄ ▄▃▂▁╚╝ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.142.155
F23ko:感謝 ^^" 03/19 16:03
MMAXo:ㄜ,要配合 PS 那樣改 Get() 裡面的 done = true 要拿掉 03/19 16:43