寫完第一篇,發現要分門別類整理工程浩大,而且要拖上很久才能累積出足夠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

寫的真讚 讓我的邏輯有了另多一個想法

Post a comment