none
GUID 以及 引用DLL檔的疑問? RRS feed

  • 問題

  • 想請問各位高手幫我解答一下
    由於我開始學習C#是利用visual studio 2008來開發的
    最近我要學做一個toolbar
    上網找到有原始檔
    打開後由舊版本轉成新版本的visual studio 2008
    但是裡面有幾個問題看不太懂

    原始檔:
    using BandObjectLib;  <=內有個類別名為 BandObject

    namespace SampleBars
    {
    [Guid("AE07101B-46D4-4a98-AF68-0333EA26E113")]
    [BandObject("Hello World Bar", BandObjectStyle.Horizontal | BandObjectStyle.ExplorerToolbar | BandObjectStyle.TaskbarToolBar, HelpText = "Shows bar that says hello.")]

        public class HelloWorldBar : BandObject
     {
    ...
      }
    }

    下面有4個問題想請教一下
    1. GUID我有上網去查過,是任兩台電腦產生的GUID會是不同,通常拿來當識別碼用,但老弟不曉得為什麼在此專案一開始要先引入GUID,有何用途?

    2. C#內中括號[]是指new 一個class的意思嗎?小弟學的方法是 
                                           先  BandObject class1 = new BandObject();
    然後再宣告參數取得類別內的值  string sum = BandObject.ok(5, 10);
    然而[BandObject("Hello World Bar", BandObjectStyle.Horizontal | BandObjectStyle.ExplorerToolbar | BandObjectStyle.TaskbarToolBar, HelpText = "Shows bar that says hello.")] 和[Guid("AE07101B-46D4-4a98-AF68-0333EA26E113")]   <==這兩段要如何改寫成我的寫法呢?

    3.  "public class HelloWorldBar : BandObject" <=為什麼類別後面要加上冒號和dll檔的類別名稱呢?

    2010年1月6日 上午 09:08

解答

  • hi
    關於guid你該先看看這個: http://en.wikipedia.org/wiki/Globally_Unique_Identifier
    另外,那個[] 放在不同的位置有不同的意思,他可以用在屬性、陣列、ooxxx一堆有的沒的...

    public class HelloWorldBar : BandObject  是繼承自BandObject類別的意思

    http://www.shangducms.com/post/2009/07/10/IE-Extension-BandObject.aspx
    這邊有一篇文章你可以參考一下。


    My Blog:http://www.dotblogs.com.tw/alonstar
    解決問題之後,別忘了回到論壇把正確回應標示成解答哦!
    • 已標示為解答 thinklover 2010年1月7日 上午 11:37
    2010年1月6日 上午 09:30

所有回覆

  • hi
    關於guid你該先看看這個: http://en.wikipedia.org/wiki/Globally_Unique_Identifier
    另外,那個[] 放在不同的位置有不同的意思,他可以用在屬性、陣列、ooxxx一堆有的沒的...

    public class HelloWorldBar : BandObject  是繼承自BandObject類別的意思

    http://www.shangducms.com/post/2009/07/10/IE-Extension-BandObject.aspx
    這邊有一篇文章你可以參考一下。


    My Blog:http://www.dotblogs.com.tw/alonstar
    解決問題之後,別忘了回到論壇把正確回應標示成解答哦!
    • 已標示為解答 thinklover 2010年1月7日 上午 11:37
    2010年1月6日 上午 09:30
  • Hi,

    2.那是Attribute
    Attribute 類別

    3.那是繼承或是實作介面的寫法
    繼承 (C# 程式設計手冊)

    明確介面實作 (C# 程式設計手冊)

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年1月6日 上午 09:30
  • VS2008 有內建 toolbar ... 不知道為啥要抓別人的...
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年1月6日 上午 09:50
  • hi
    關於guid你該先看看這個: http://en.wikipedia.org/wiki/Globally_Unique_Identifier
    另外,那個[] 放在不同的位置有不同的意思,他可以用在屬性、陣列、ooxxx一堆有的沒的...

    public class HelloWorldBar : BandObject  是繼承自BandObject類別的意思

    http://www.shangducms.com/post/2009/07/10/IE-Extension-BandObject.aspx
    這邊有一篇文章你可以參考一下。


    My Blog:http://www.dotblogs.com.tw/alonstar
    解決問題之後,別忘了回到論壇把正確回應標示成解答哦!

    感謝版主回應,我有看一段為
    In the Microsoft Component Object Model (COM), GUIDs are used to uniquely distinguish different software component interfaces. This means that two (possibly incompatible) versions of a component can have exactly the same name but still be distinguishable by their GUIDs.
    在微軟的COM裡,如果有給他們一組GUID來判斷軟體元件的接口,就算元件名稱相同也沒關係
    所以說,以後我們在開發元件的時候,一定要加一組GUID,可以避免開發出來的元件與其他元件可能有衝突?

    還有"星寂Shelly"給的另一篇中文的toolbar教學文章真是太棒了!
    我看英文的toolbar看到快吐血~謝謝你!!
    2010年1月6日 上午 09:54
  • Hi,

    GUID在專案開啟後就會自動幫你設到組件資訊內了
    除非有特別需要
    不然這部份不用自己手動去做

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2010年1月6日 上午 10:01
  • VS2008 有內建 toolbar ... 不知道為啥要抓別人的...
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    有嗎?
    請指點一下在哪裡呢?
    謝謝你!!
    2010年1月6日 上午 10:08
  • [ToolStrip 控制項 (Windows Form) ]
    [StatusStrip 控制項 ]
    [MenuStrip 控制項 (Windows Form) ]
    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年1月6日 上午 10:16
    版主