Feeds:
文章
留言

Archive for 四月 27th, 2006

假如我在 Visual Studio 2005 環境中,將一個純文字檔 res_plain_text.txt 加入 Resource,我要如何讀取它的內容呢?
我原以為 Resource 只是紀錄檔檔名,所以我寫了如下的程式碼:
System.IO.StreamReader sr = new System.IO.StreamReader(Properties.Resources.res_plain_text);
string content = sr.ReadToEnd();
sr.Close();
sr = null;
MessageBox.Show(content);

結果出現錯誤,接著我想說可能 Properties.Resources.res_plain_text 有問題,於是我寫了下面的程式碼:
MessageBox.Show(Properties.Resources.res_plain_text); 

唉呀呀… 居然就是檔案內文,想不到 Microsoft 將整個過程已經簡化到我不用考慮細節了…

如果對於細節有興趣,可以打開 Resources.Designer.cs 會發現如下的程式片斷
        internal static string res_plain_text {
            get {
                return ResourceManager.GetString("res_plain_text", resourceCulture);
            }
        }

我真的是越來越喜歡 Visual Studio 提供的 Designer …

Read Full Post »

如果需要存取 global namespace 中的成員,可以透過 global:: 來存取,例如:global::System.Control.WriteLine("using global::");

引入 global:: 的主要用途是解決名稱衝突,MSDN 上的範例摘錄如下

using System;

class TestApp
{
    // Define a new class called ‘System’ to cause problems.
    public class System { }

    // Define a constant called ‘Console’ to cause more problems.
    const int Console = 7;
    const int number = 66;

    static void Main()
    {
        global::System.Console.WriteLine(number);

    }
}

參考資料
[1] http://msdn2.microsoft.com/zh-tw/library/c3ay4x3d.aspx

Read Full Post »

Read Full Post »