none
從object 隱含轉為 EnvDTE.DTE.TextDocument RRS feed

  • 問題

  • 我從這得到的http://www.cnblogs.com/zgqys1980/archive/2006/12/08/586125.html

    不過我VS2012製作擴充過程有些錯的

    Imports System
    Imports EnvDTE
    Imports EnvDTE80
    Imports System.Diagnostics
    Imports System.Text.RegularExpressions
    Public Module Unicode2Character
    
    Private _DTE As DTE
    
        Public Sub 單字轉換()
            Dim doc As Document = _DTE.ActiveDocument '這裡不能共用我把它用共用了
            Dim docText As TextDocument = doc.Object("TextDocument")'問題在這邊出現從object 隱含轉為 EnvDTE.DTE.TextDocument
            Dim selText As TextSelection = docText.Selection()
            Dim text As String = selText.Text
            Dim ch As Char = cc(text)
            docText.ReplacePattern(text, ch)
        End Sub
    
        Private Function cc(ByVal str As String) As Char
            Dim int As Integer = CInt(str.Substring(5, 5))
            Dim ch As Char = ChrW(int)
            Return ch
        End Function

    不知道為啥麼會這樣了

    到MSDN查也是這樣寫的但是我的出現"從object 隱含轉為 EnvDTE.DTE.TextDocument"

    2014年3月11日 上午 02:01

解答

  • (1) 可能的情形是你的編譯環境有設定 "隱含轉換 警告", 請開啟專案屬性-->編譯 -> 警告組態看一下

    (2) Documnet.Object 方法回傳的本來就是 Object 型別, 比較好的建議是不要使用隱含轉換, 而是明確轉換型別
    CType(doc.Object("TextDocument"), TextDocument)

    (3) 提醒您, 不要忘記你曾經發問的問題, 該標示已結束的問題麻煩請記得標示, 這是對自己問題的尊重, 也是對回答你的人的尊重.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2014年3月11日 上午 02:48
    版主