第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

表單中其他位置的引用變量和對象

表單中其他位置的引用變量和對象

jeck貓 2019-07-25 10:37:21
表單中其他位置的引用變量和對象我正在嘗試將設(shè)備對象傳遞給表單對象,然后在窗體上的按鈕的單擊事件中使用該設(shè)備對象。但我不知道如何在按鈕事件中正確引用設(shè)備對象。我使用以下方法設(shè)置新表單實例:Public Sub New(ByRef thisEquip As classEquipment)     Me.InitializeComponent()     Me.Text = thisEquip.equipName & " Tests"End Sub并設(shè)置按鈕單擊事件,如下所示:Private Sub btnUpdateAndClose_Click(sender As Object, e As EventArgs) Handles btnUpdateAndClose.Click    Call updateTestList(thisEquip)End Sub但'thisEquip'對象無法識別。我認(rèn)為這是因為發(fā)件人是按鈕而不是表單本身。但是,我不知道如何從表單中引用設(shè)備對象。
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗 獲得超5個贊

范圍取決于在哪里聲明一個變量。您可能錯過了瀏覽鏈接的內(nèi)容 - 每個范圍級別摘要都包含聲明它的短語。

現(xiàn)在看看你的構(gòu)造函數(shù):

Public Sub New(ByRef thisEquip As classEquipment)

thisEquip聲明為構(gòu)造函數(shù)的參數(shù)。因此,它只存在于該程序中。程序采用的形式或thisEquip形式(或模塊或其他任何形式)中提到的事實是偶然的。雖然構(gòu)造函數(shù)確實在幾個方面是特殊的,但在Scope的問題上,它只是另一個過程。

表格級別范圍

保存對其的引用以供其他地方使用:

Public Class Form1    ' declare a variable to hold the reference
    Private myEquip As classEquipment    ' declare an array
    Private myImgs As Image()

    Public Sub New(ByRef thisEquip As classEquipment)
        InitializeComponent()
        ...
        myEquip = thisEquip         ' assign param to the var

        ' assign array of images to the Form level var
        ' via a temp array
        myImgs = New Image() {My.Resources.add, 
                              My.Resources.ballblack, My.Resources.ballblue,
                              My.Resources.ballgreen}
    End Sub

在表單級別聲明,它具有表單/類級別范圍。您現(xiàn)在myEquip可以在表單中的任何位置引用或myImgs。 僅在將某些內(nèi)容分配給表單級對象時不要使用 Dim - 它將創(chuàng)建一個新的本地但名稱相同的變量。


其他常見范圍級別:

程序級別范圍

Private myFoo as Int32Private Sub DoSomething()
    Dim myBar As String 
    myBar = "Ziggy"
    ...
    Dim myFoo As Int32 = 7End Sub

這通常稱為本地范圍。我正在使用程序級別,因為它與其他術(shù)語進(jìn)行了比較和對比。

myBarDoSomething方法中聲明,因此它具有過程級別范圍 - 它只存在于該方法中。試圖在別處使用它會導(dǎo)致錯誤。這類似于上面的構(gòu)造函數(shù)示例,主要區(qū)別在于thisEquip對象作為參數(shù)傳遞而不是在本地聲明。

這導(dǎo)致一些人感到困惑:Dim myFoo方法中聲明(創(chuàng)建!)一個新的,僅本地myFoo變量,它與同名的Form / Class級別變量無關(guān)。本地版本遮蔽了另一個版本。對此的一些困惑似乎是有些人認(rèn)為他們需要(重新)使用Dim它們才能使用變量。你不。


塊級范圍

直接來自MSDN:

If n < 1291 Then
    Dim cube As Integer
    cube = n ^ 3End If

相當(dāng)數(shù)量的VB語句創(chuàng)建了一個塊范圍For EachNext,IfEnd IfUsingEnd Using)。在塊內(nèi)聲明的變量,其范圍僅限于該塊?;旧?,(幾乎)任何導(dǎo)致縮進(jìn)的內(nèi)容都會創(chuàng)建一個塊范圍。

Private Sub .....
    Dim cube As Int32    If n < 1291 Then
       cube = n ^ 3
    End If

現(xiàn)在,cube可以在過程的其他地方使用:它的范圍已從Block更改為Local。

有關(guān)更多詳細(xì)信息,請參閱MSDN:
Visual Basic中的范圍
值類型與引用類型


查看完整回答
反對 回復(fù) 2019-07-25
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗 獲得超3個贊

那講得通; 我的問題是我錯誤地認(rèn)為構(gòu)造函數(shù)的范圍在它處于活動狀態(tài)時應(yīng)用于該表單對象。我通過了ThisEquip byRef,因為我想對它進(jìn)行更改; 但現(xiàn)在我正在對myEquip應(yīng)用更改。有沒有比在構(gòu)造函數(shù)中傳遞thisEquip byRef更好的地方? 

查看完整回答
反對 回復(fù) 2019-07-25
  • 2 回答
  • 0 關(guān)注
  • 389 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號