none
加入參考確發生物件在命名空間模稜兩可的情況? RRS feed

  • 問題

  •  

    dear all

     

    我參考了一個dll檔案,援引其中一個物件的時候卻發生:

     

    " 物件名稱 " 在命名空間 XXX 中模稜兩可

     

    請問這是什麼問題呢?是我哪裡還沒弄好嗎?

     

     

    2007年7月31日 下午 12:25

解答

  • HI,

     

    有可能是類別名稱發生衝突引起的, 您可以注意一下專案名稱有沒有和欲使用的類別名稱相同, 或是所引入的組件中的類別是否會和.NET現有的類別名稱相同, 如果有的話, 可以使用類別的全名(名稱空間.類別名稱)來宣告變數.

     

    tihs

    2007年8月1日 上午 01:46
  •  

    Dear Sir

    有一個情形會是這樣子,你確定看看,例如以下程式碼

    Imports System.Threading

    Imports System.Timers

    Public Class Form1

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            Dim t As Timer

        End Sub

    End Class

    在Threading命名空間與Timers命名空間中都有叫做Timer的類別,這時候編譯器會不知道你宣告的Timer到底是哪一種,所以要改用下面的方式

    Dim t As System.Timers.Timer
    2007年8月1日 上午 01:57
    版主
  • 1. 你可以把 Import 改成這樣看看:

     

    Code Snippet

    Imports System.Data

    Imports System.Data.SqlClient

     

     

     

     

    2. 檢查你有沒有引用到可能有相同名稱的組件。

    2007年8月1日 上午 02:09
    版主

所有回覆

  • 朱大

    我還是不太懂裡面的內容耶...因為我只是很單純的兩行而已

    一行imports

    一行dim

    卻產生這種錯誤訊息  但是另一台電腦卻好好的  都是VS2005 ~"~

    這種問題   實在不知道怎麼辦才好

    感謝

    2007年7月31日 下午 06:34
  • 你公告看了沒有 ?

     

    本版公告

    各位版友大家好:

    本版面雖然僅為 Visual Basic 討論版,但 VB 家族繁雜,煩請各位張文章時明確清楚的說明使用的環境與編譯器,若不清楚所需提供的資訊,請依下列項目列示:

    1. 編譯器或直譯器: (請明確包含版號及等級,例如:VB5 std, VB6 Ent., VB2003 Pro., VB2005 Express, VBScript 5.6, VBA 6.4)
    2. 編譯器語系:(一般省略通常會假設為繁中版,若為英文版請加註)
    3. 作業系統:(請明確包含版號及等級,例如:Win98/SE/Me, Win2k Pro/Svr., WinXP Home/Pro., Win2003 std. ...)
    4. 作業系統語系:(一般省略通常會假設為繁中版,若為英文版或多語系版請加註)

    錯誤訊息請明確提供錯誤代碼、錯誤訊息內容、程式碼錯誤行整行內容、該錯誤行各變數內容。

    例如在除錯模式下,發生錯誤行會以黃色列反白,此時可以以滑鼠停留在變數上,即會以 Tooltips 方式跳出變數內容,或者將變數反白後,以 Shift+F9 觀看變數內容。有提供變數內容時,至少網友可以企圖重現你的錯誤狀態,進而解決問題。

     

     

    我很討厭玩猜猜看,如果你要繼續玩,那另請高明吧。

    2007年8月1日 上午 12:17
    版主
  • Dear 朱大:

     

    很對不起,我忽略了公告的注意事項,並且發問的語意不清,

     

    另外也很感謝您,不厭其煩的回答一個新手的問題,

     

    我也敬仰您的專業知識,是MSDN中專業的problem solver

     

    如果我造成您的困擾與不悅,實在深感歉意。

    2007年8月1日 上午 01:09
  • HI,

     

    有可能是類別名稱發生衝突引起的, 您可以注意一下專案名稱有沒有和欲使用的類別名稱相同, 或是所引入的組件中的類別是否會和.NET現有的類別名稱相同, 如果有的話, 可以使用類別的全名(名稱空間.類別名稱)來宣告變數.

     

    tihs

    2007年8月1日 上午 01:46
  •  

    Dear Sir

    有一個情形會是這樣子,你確定看看,例如以下程式碼

    Imports System.Threading

    Imports System.Timers

    Public Class Form1

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            Dim t As Timer

        End Sub

    End Class

    在Threading命名空間與Timers命名空間中都有叫做Timer的類別,這時候編譯器會不知道你宣告的Timer到底是哪一種,所以要改用下面的方式

    Dim t As System.Timers.Timer
    2007年8月1日 上午 01:57
    版主
  • 1. 你可以把 Import 改成這樣看看:

     

    Code Snippet

    Imports System.Data

    Imports System.Data.SqlClient

     

     

     

     

    2. 檢查你有沒有引用到可能有相同名稱的組件。

    2007年8月1日 上午 02:09
    版主
  •  

    感謝各位的指導,結果我將一些不必要的參考刪除後,並清楚定義物件是援引哪個類別庫就可以清楚定義了

     

    可能我真的有同時引用了類似名稱的類別吧?

     

    誠摯感謝各位熱心解決我的問題,我很感激

     

    祝平安愉快

    2007年8月1日 上午 02:34