VB 2005 Express 問題, 方法一好像易明此, 為何要用方法二?

2007-09-04 6:50 am
Dim s1 As String
Dim i As Integer
'方法一
Console.Write("請輸入字串:")
s1 = Console.ReadLine()
Console.Write("請輸入整數:")
i = Console.ReadLine()
Console.WriteLine("s1=" & s1 & ", i=" & i)

'方法二
Console.Out.Write("請輸入字串:")
s1 = Console.In.ReadLine()
Console.Out.Write("請輸入整數:")
i = Console.In.ReadLine()
Console.Out.WriteLine("s1={0}, i={1}", s1, i)
另外方法二的為何要加In, Out? ("s1={0}, i={1}", s1, i)可否作詳細解釋?

回答 (2)

2007-09-04 1:27 pm
✔ 最佳答案
Console.ReadLine() 是用了Console class 的 ReadLine() method.
Console.In 是一個TextReader,Console.In.ReadLine()是用了TextReader class 的 ReadLine() method.
Console.Out 是一個TextWriter,Console.Out.WriteLine()是用了TextWriter class 的 WriteLine() method.
Console.ReadLine 和 Console.In.ReadLine() 都是由standard input stream讀取資料,加了In,Out使物件(object)改變了,也規限了可用的方法(method),例如Console.In便不能用ReadLine()方法.

方法一是字串連結方法(string concatenation),即把幾個字串string連起來成為新字串,string concatenation是一個很慢的運作,而且不容易閱讀.

方法二是把變數指定在字串中的位置,.net的runtime engine(CLR)會把變數代入適當的位置,這比字串連結運作快得多,.net development 應該用方法二.

2007-09-04 05:29:57 補充:
更正例如Console.In便不能用WriteLine()方法
2007-09-04 11:18 am
方法二係將程式所指向既物件指定法D
即係如果你有個console既物件,用方法一會較易出錯


收錄日期: 2021-04-25 20:34:28
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070903000051KK04800

檢視 Wayback Machine 備份