Re: [問題] 變數宣告在if結構裡

看板C_Sharp (C#)作者 (123)時間10年前 (2014/05/19 12:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
看完後整整十分鐘心神不寧無法繼續工作,決定趁吃飯前回一下。 由原PO回文中已知兩個類別是繼承關係。 依照原文推文中的Abb大建議,實作程式碼。 // 以下程式碼依原程式內容 // 預期檔案第一行可能讀到 "father" or "son" 之外的內容,且不須處理 // 變數命名使用原程式命名方式 private void button1_Click(object sender, EventArgs e) { System.IO.StreamReader file = new System.IO.StreamReader("file.txt"); string str = file.ReadLine(); ClassFather xxx = null; if (str == "father) { xxx = new ClassFather(); } else if (str == "son") { xxx = new ClassSon(); } if (xxx != null) { xxx.strA = file.ReadLine(); xxx.strB = file.ReadLine(); } } --------------------------------------------------------------- ClassFather xxx = null; . . . xxx = new ClassSon(); } 這段視你的需求可以考慮用 ClassFather xxx = FatherSonClassFactory.Create(str); 來替換掉 然後 C# (物件導向) 的 method 主要功能應該不是用來排版.. ※ 引述《LetsGoToEat (一起去吃東西吧)》之銘言: : ※ 引述《GoalBased (Artificail Intelligence)》之銘言: : : 大概是長這樣,細節有錯的話自己改, : : 是說..現在的新手會開檔讀檔,會用類別,不會用function是怎麼回事= = : 感謝幫忙,我試著改成這樣 : private void button1_Click(object sender, EventArgs e) : { : System.IO.StreamReader file = new System.IO.StreamReader("file.txt"); : string str = file.ReadLine(); : if (str == "father") : { : ClassFather xxx = new ClassFather(); : IamFunction(file, xxx); : } : else if (str == "son") : { : ClassSon xxx = new ClassSon(); : IamFunction(file, xxx); : } : } : private void IamFunction(System.IO.StreamReader file, ClassFather xxx) : { : xxx.strA = file.ReadLine(); : xxx.strB = file.ReadLine(); : } : 似乎是可以了@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.109.209 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1400472554.A.5E1.html
文章代碼(AID): #1JUOFgNX (C_Sharp)
文章代碼(AID): #1JUOFgNX (C_Sharp)