中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB.NET局部靜態變量怎么用

發布時間:2021-12-02 11:19:42 來源:億速云 閱讀:187 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“VB.NET局部靜態變量怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“VB.NET局部靜態變量怎么用”這篇文章吧。

VB.NET局部靜態變量

VB支持用Static關鍵字聲明局部變量,這樣在過程結束的時候可以保持變量的數值:

Public Sub Test1()  Static i As Integer  i += 1 '實現一個過程調用計數器  End Sub

我們實現了一個簡單的過程計數器。每調用一次Test,計數器的數值就增加1。其實還有很多情況我們希望保持變量的數值。而C#的static是不能用在過程內部的。因此要實現過程計數器,我們必須聲明一個類級別的變量。這樣做明顯不如VB好。因為無法防止其他過程修改計數器變量。這就和對象封裝一個道理,本來應該是一個方法的局部變量,現在我要被迫把它獨立出來,顯然是不好的設計。那么VB是怎么生成局部靜態變量的呢?將上述代碼返匯編,我們可以清楚地看到在VB生成的CIL中,i不是作為局部變量,而是作為類的Field出現的:

.field private specialname int32 $STATIC$Test1$2001$i

也就是說,i被改名作為一個類的字段,但被冠以specialname。在代碼中試圖訪問$STATIC$Test1$2001$i是不可能的,因為它不是一個有效的標識符。但是在IL中,將這個變量加一的代碼卻與一般的類字段完全一樣,是通過ldfld加載的。我覺得這個方法十分聰明,把靜態變量變成生命周期一樣的類字段,但是又由編譯器來控制訪問的權限,讓它成為一個局部變量。同時也解釋了VB為什么要用兩個不同的關鍵字來聲明靜態變量—— Static和Shared。

由于VB.NET局部靜態變量的實質是類的字段,所以它和真正的局部變量還是有所不同的。比如在多線程條件下,對VB.NET局部靜態變量的訪問就和訪問字段相同。

以上是“VB.NET局部靜態變量怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清苑县| 大连市| 永昌县| 绩溪县| 江安县| 丰原市| 尖扎县| 敦煌市| 明星| 桐梓县| 从化市| 云安县| 聊城市| 淮北市| 尼勒克县| 萨迦县| 大冶市| 清河县| 洱源县| 阿拉善右旗| 吉木乃县| 枣强县| 潜山县| 白玉县| 藁城市| 通辽市| 托克托县| 眉山市| 铜川市| 女性| 渭源县| 昭苏县| 伊宁市| 东方市| 永善县| 乐至县| 淮阳县| 丹阳市| 秀山| 潢川县| 盐山县|