[問題] 請問一段程式碼

看板C_Sharp作者 (血腹獸)時間17年前 (2008/09/24 18:19), 編輯推噓2(208)
留言10則, 3人參與, 最新討論串3/3 (看更多)
是從java看來的 是java的code 可以在執行期間透過這個method動態產生對應的Object 我有嘗試用轉換把java轉成c#的語法 卻沒辦法正常執行 想請教各位板友 這種寫法如果用C#該如何達成呢? 謝謝 public static Object getObject(string className) { try { Class c = Class.forName(className); Object obj = c.newInstance(); return obj; } catch(Exception e) { return null } } -- Sound Horizon音律地平線 每一首歌就是代表著一個故事 鋼琴譜 http://blog.xuite.net/kairytwo/MyScore -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.56.13.124 ※ 編輯: kairy 來自: 61.56.13.124 (09/24 18:20)

09/24 20:40, , 1F
你轉出來的語法是怎樣?不要告訴我你還是用Class.forName
09/24 20:40, 1F

09/24 22:16, , 2F
Assembly assembly = Assembly.Load(assemblyName);
09/24 22:16, 2F

09/24 22:17, , 3F
Object obj = assembly.CreateInstance(className);
09/24 22:17, 3F

09/25 09:16, , 4F
用vs的轉換精靈換過來的code是
09/25 09:16, 4F

09/25 09:16, , 5F
System.Type c = System.Type.GetType(className);
09/25 09:16, 5F

09/25 09:16, , 6F
System.Object obj = System.Activator.CreateInstance(c);
09/25 09:16, 6F

09/25 09:17, , 7F
但是用這種方法跑出來的的c是null~就會有exception了
09/25 09:17, 7F

09/25 09:20, , 8F
className要有完整的namespace 不能只有class的名稱
09/25 09:20, 8F

09/25 10:30, , 9F
謝謝樓上,加上namespace就可行了,感恩
09/25 10:30, 9F

09/25 10:31, , 10F
看來轉換精靈轉的code沒錯:)~謝謝
09/25 10:31, 10F
文章代碼(AID): #18sXGuIr (C_Sharp)
文章代碼(AID): #18sXGuIr (C_Sharp)