您应该在类中使用变量或属性以及全局变量还是静态变量?

时间:2012-06-09 19:09:22

标签: .net vb.net oop design-patterns

我是.NET编程的新手。

我有一个包含Button1_Click事件的Form1类。 (Button1_Click在运行时创建多个文本框)

这是班级:

Public Class Form1

    Dim shiftDown As Integer

    Dim counter As Integer


  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)   Handles MyBase.Load
   End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim textbox1 As New TextBox

       counter += 1

       shiftDown = shiftDown + 30

       textbox1.Name = "Textbox" + counter.ToString()
       textbox1.Size = New Size(170, 10)
       textbox1.Location = New Point(10, 32 + shiftDown)
       textbox1.Visible = True

       GroupBox1.Controls.Add(textbox1)

End Sub

结束班

目前这行:

Dim shiftDown As Integer

Dim counter As Integer

定义为全局变量。

我的问题是,我应该在Button1_Click事件中将这些变量定义为属性还是静态局部变量,而不是它们的方式?

3 个答案:

答案 0 :(得分:3)

如果您正在构建Windows窗体应用程序(我认为您是),请尝试使用Protected而不是Dim:

Protected shiftDown As Integer
Protected counter As Integer

这会将变量转换为本地类变量而不是全局变量。

答案 1 :(得分:3)

我会使用变量而不是属性。将它们在Form1中全局定义到类中,就像现在一样,或者作为Button1_click中的静态变量都可以正常工作;这是个人偏好的问题。

将它们保持原样是可以的,理解这些变量可以由Form1类中的其他subs访问。您也可以在Button1_click中将它们设置为静态,但如果您明确初始化变量,则需要注意。

答案 2 :(得分:2)

如果您真的想学习如何构建.NET应用程序,我迫切建议观看Jason Dollinger的视频,该视频可在此处获取:Lab49 Archives

它非常棒,它涵盖了在需要构建正确的WPF / MVVM / .NET应用程序时遇到的大多数相关问题