2013-10-23 58 views
0

我使用這個 「法」 通過的形式來傳遞值:值傳遞通過形式在一個安全的方式

Form1

Public iCodName As Long 

然後在Form2

Private Sub Button1_Click() 
    Form1.iCodName = 10 
End Sub 

我知道它是NOT一個安全的方式來做到這一點,因爲我所有的變量必須是GLOBAL這樣做,所以我想問一個安全的方式來傳遞這些類型的值通過表格或最好的方式來做到這一點,如果這不是編程的Good Practice

+2

沒有什麼錯,它遠遠不是不安全的,因爲我我知道。你懷疑這種方法有什麼錯誤? –

+0

@DeeMac真的嗎?所以我可以按我的願望做這個?我認爲這是不安全的,因爲我有GLOBAL變量,它可能會以某種方式被訪問損害系統......這是一個'壞習慣'嗎? – PlayHardGoPro

+1

好的做法非常依賴於它是什麼,正是你想要做的。如果你想讓所有可以訪問的變量全局訪問,那就沒問題。如果你想在一定程度上修改對這個變量的訪問,那麼你需要考慮一個不同的方法。什麼是變量用於?提供更多上下文。 –

回答

0
表單中的

Dim iCodName As Long 
' private??? I forget, my VB6 is rusty... 
Public Property Get CodeName() As Long 
    Return iCodName  
End Property 

Public Property Let CodeName(ByVal vNewValue As Long) 
    iCodName = vNewValue 
End Property 

它並不比裸公共成員一個很大的不同,但可以阻止iCodName被公共

+0

我習慣於使用C#,而在C#中,當涉及到安全性時,public和Get \ Set方法之間存在很大差異......因此,使用vb6的話沒有這種擔心嗎? – PlayHardGoPro

+0

主要區別在於其他代碼不能事件地改變它:'iCodName = -1',它必須仔細考慮:'frmName.CodeName = -1',否則任何事情都可以改變它,因爲它是公開的。 – Plutonix

+0

只有在靜態模塊中聲明爲Public的東西纔會被放入全局名稱空間。這個「事故」根本不可能發生。 – Bob77