關於Visual Basic 9.0的靜態標識符。本站提示廣大學習愛好者:(關於Visual Basic 9.0的靜態標識符)文章只能為提供參考,不一定能成為您想要的結果。以下是關於Visual Basic 9.0的靜態標識符正文
靜態言語往年來開展很快,各種腳本言語多少都帶有些靜態言語的特點。靜態言語以其靈敏的語法和豐厚的運轉時行為博得了許多人的喜愛。在.NET陣營,C#不斷扮演著靜態言語的角色,雖然3.0的語法改動很保守,但仍注重於編譯時的類型反省和約束。靜態特性用的不好會發生更多運轉時問題,不易確保順序的牢靠性,但其進步開發效率的作用是無須置疑的。Visual Basic 9.0是Visual Studio中獨一能讓你統領靜態和靜態兩大范疇的言語,讓你在順序中自在選擇喜歡的作風。
Visual Basic 從1.0便支持前期綁定,即依照對象的運轉時類型信息運用對象,而不是定義這個對象時的類型信息。如:
Dim l As Object = New ArrayList()l.Add(12)l.RemoveAt(0)
我們知道Object沒有Add或RemoveAt辦法,但運轉時類型ArrayList具有他們,因而Visual Basic允許到運轉時再反省有無相應的操作並支持。既然這個進程曾經是在運轉時做的了,我們就應該允許這個前期綁定的操作自身也是在運轉時確定。這個語法加強叫做靜態標識符。比方我們可以和這樣寫:
Dim l As Object = New ArrayList()l.("Add")(12)l.("RemoveAt")(0)
我們看到,這個時分辦法稱號Add和RemoveAt曾經是字符串了,它當然也可以是包括字符串的變量!所以你甚至可以寫出這樣的代碼:
l.(Console.ReadLine())(12)l.("Remove" & "At")(0)
這樣,作為辦法稱號的標識符就可以完全在靜態時期確定了。辦法稱號如此,那麼類型稱號呢?理應如此。我們可以這樣寫:
Dim l As Object = New ("ArrayList")()
這樣,你的變量l的類型將依據一個運轉時字符串的值確定。靜態標識符還能將函數的參數也靜態化,假定有下列子順序:
Sub Method1(Optional arg1 As String, Optional arg2 As String)
運轉的時分,我們可以靜態地指定將數值賦給哪個參數:
If a > 0 Then argString = "arg1" Else argString = "arg2"Method1({argString}:= a.ToString())
留意在:=符號之前的大括號,表示對參數稱號的靜態結合。有了靜態標識符這一特性,Visual Basic 9.0將不需求應用反射的復雜語法,就可以做很多需求反射和運轉時類型信息來做的義務,這使得Visual Basic成為處理你手邊小問題的最佳幫手。本期我們曾經領略到Visual Basic 9.0在靜態特性上的改造,下一期將引見第二個靜態特性——靜態接口。