Re: [問題] 變數宣告在if結構裡
看完後整整十分鐘心神不寧無法繼續工作,決定趁吃飯前回一下。
由原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
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章