我正在讀取一段代碼,它讀取Microsoft Access數據庫模式。這是什麼{! }是指在特定的代碼行中?
他人之間,我看到了一行代碼迴路
ColName = SchemaTable.Rows(i)!COLUMN_NAME.ToString
爲什麼感嘆號用於{! }?
我正在讀取一段代碼,它讀取Microsoft Access數據庫模式。這是什麼{! }是指在特定的代碼行中?
他人之間,我看到了一行代碼迴路
ColName = SchemaTable.Rows(i)!COLUMN_NAME.ToString
爲什麼感嘆號用於{! }?
從MSDN: Special Characters in Code (Visual Basic)
感嘆號操作
使用!運算符僅在類或接口上作爲字典訪問 運算符。類或接口必須具有默認屬性, 接受單個字符串參數。該標識符緊接在 之後!運算符成爲以字符串形式傳遞給默認 屬性的參數值。
Public Class hasDefault Default Public ReadOnly Property index(ByVal s As String) As Integer Get Return 32768 + AscW(s) End Get End Property End Class Public Class testHasDefault Public Sub compareAccess() Dim hD As hasDefault = New hasDefault() MsgBox("Traditional access returns " & hD.index("X") & vbCrLf & "Default property access returns " & hD("X") & vbCrLf & "Dictionary access returns " & hD!X) End Sub End Class
MSGBOX所有的三個輸出線顯示值32856.該 第一行使用到屬性索引的傳統的接入,所述第二 利用以下事實,即指數是類 hasDefault的默認屬性,第三個使用字典訪問該類。
請注意,第二操作數的!運算符必須是不包含在雙引號(「」)中的有效Visual 基本標識符。在 換句話說,你不能使用字符串文字或字符串變量。 以下更改爲MsgBox調用的最後一行會生成一個 錯誤,因爲「X」是一個封閉的字符串文字。
"Dictionary access returns " & hD!"X")
對默認集合的引用必須是顯式的。特別是你 不能使用!運算符在一個遲到的變量上。
它做一個查找在收集SchemaTable
,尋找COLUMN_NAME.ToString
,那麼設置爲ColName
這裏更多的信息和示例:(!) http://support.microsoft.com/kb/129287
它沒有在「集合SchemaTable」上執行查找/索引。它在'SchemaTable.Rows(i)'上進行。它不會爲ColName設置任何內容:它將'ColName'設置爲'.ToString'的結果。此外,'!'與此無關。最後,你的鏈接已經死了。即使這些是固定的,這似乎是一個非常模糊的答案。 –