Coding Smarter Tips 2
| | | 2 | |
寫完第一篇,發現要分門別類整理工程浩大,而且要拖上很久才能累積出足夠Flush的量,索性改成想到什麼寫什麼的大雜燴好了,有點像用Response.Buffer=false;改善使用者的互動感受,哈!
static void Tips2()
{ //**String轉成不同編碼的Byte Arraystring 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
寫的真讚 讓我的邏輯有了另多一個想法