Coding Smarter Tips 2
2 |
寫完第一篇,發現要分門別類整理工程浩大,而且要拖上很久才能累積出足夠Flush的量,索性改成想到什麼寫什麼的大雜燴好了,有點像用Response.Buffer=false;改善使用者的互動感受,哈!
static void Tips2()
{
//**String轉成不同編碼的Byte Array
string s = "丁丁是個人才";
byte[] buffBIG5 =
System.Text.Encoding.GetEncoding("big5").GetBytes(s);
byte[] buffUTF8 =
System.Text.Encoding.UTF8.GetBytes(s);
//**Byte Array轉成十六進位數字字串
//別再自己跑迴圈了,用這個
string t = BitConverter.ToString(buffBIG5);
Console.WriteLine(t);
//**由目錄名稱跟檔案名組出完整路徑
//你還在為了目錄名稱後方要不要加\而煩惱嗎?
//快閃開! 讓專業的來
Console.WriteLine(Path.Combine("C:\\TEMP", "F1.TXT"));
Console.WriteLine(Path.Combine(@"C:\TEMP\", "F2.htm"));
//**從路徑中擷取出目錄名、檔案名、副檔名
//要IndexOf一下嗎? 不用!!
string f = @"C:\TEMP\F3.pdf";
Console.WriteLine(Path.GetDirectoryName(f));
Console.WriteLine(Path.GetFileName(f));
Console.WriteLine(Path.GetExtension(f));
//**取得暫存路徑、使用者根目錄(User Home)
//要設法讀取DOS環境參數嗎? 參數名稱到底是哪一個?
Console.WriteLine(Path.GetTempPath());
Console.WriteLine(Environment.SpecialFolder.MyDocuments);
//**取一個不會重覆的暫存檔名
//時分秒加亂數好像還是有可能打架,怎辦?
for (int i = 1; i < 10; i++)
Console.WriteLine(Path.GetTempFileName());
//**把字串寫到檔案裡
//應該用StreamWriter,沒錯吧? 其實可以更省!
System.IO.File.WriteAllText(@"A:\Temp.txt", t);
//**計時
//我之前都這麼寫
DateTime st = DateTime.Now;
System.Threading.Thread.Sleep(1024);
TimeSpan ts = DateTime.Now - st;
Console.WriteLine(ts.TotalMilliseconds + "ms");
//更簡潔更精確的計時器
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
System.Threading.Thread.Sleep(1024);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds + "ms");
Console.WriteLine(sw.ElapsedTicks + "ticks");
}
Comments
# by 號待兄
好實用的tip 請多寫幾篇~ Memo Memo~
# by Kim
寫的真讚 讓我的邏輯有了另多一個想法