作者andymai (人生只有一次)
看板C_Sharp
標題Re: [問題] 陣列的問題
時間Wed Dec 29 23:00:36 2010
招喚小型卡卡獸...原文和推文吃光光...
:a大
:c2[1] = new Class2(new string[] {"c","d"});
:與建構子
:public Class2(string[] myword)
1.是不是可以想成 string[] myword=new string[] {"c","d"}
2.若照上面我的註解改成c2[1] = new Class2(string[] {"c","d"});
3.會變成 string[] myword=string[] {"c","d"}
:這樣就錯了!
是啊...這樣就錯了...
明明在步驟1的時候有用new配置記憶體~那為什麼步驟2不用呢?
當然還是要囉...
我在猜你是把建構子要傳入的型態搞錯意思了
建構子和方法的引數寫法一樣~都是只要指定型態就好
所以public Class2(string[] myword)這樣代表的是要傳入string[]這種型態的東西
這時有3種寫法:
a.像步驟1一樣~先宣告並配置
步驟2就寫成c2[1] = new Class2(myword);
b.不想寫步驟1,反正下面的程式也用不到
那就可以寫成c2[1] = new Class2(new string[] {"c", "d"});
↑
直接new一個傳過去
c.不想給...那就寫成c2[1] = new Class2(null);
但是要注意給null會不會引發後續Class2用到時的錯誤就是了
--------------------------------------------------------------------------
string[] myword; //只是宣告myword是string[]型態~這時的myword是null
myword = new string[] {"c", "d"}; //配置記憶體和內容並指定給myword
至於型別、物件、介面、繼承等等~我會推薦"深入淺出-設計模式"這本書
雖然它是用Java寫的~但語法和C#相近~不會讓人有距離感
我相信只要努力看完並反覆體會第一章的鴨子範例
應該可以對那四個東西有進一步的認識
(不過這本書蠻貴的就是了XD 若你在台北市可以試著去借借看)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.67.96
※ 編輯: andymai 來自: 61.227.67.96 (12/29 23:05)
推 amonsat:講解的很清楚,感謝 12/30 00:23
→ james732:超級推「深入淺出-設計模式」 看它之前不知道介面是啥 12/30 00:46