【问题标题】:Creating a class and custom objects(or types?) to use when instantiating创建实例化时使用的类和自定义对象(或类型?)
【发布时间】:2015-07-20 16:17:46
【问题描述】:

我需要创建一个类。一个比较简单的。仅出于此问题的目的,我们将调用该类clsItem。这个类必须持有的值是:

  • PointX - 某个点的 X 坐标
  • PointY - 某个点的 Y 坐标
  • Type - 这将是几个选项之一(例如计算机、打印机、路由器、服务器)

我对创建一个类、属性、get/set 等只是为了简单的值有点自在。但是,在创建此类的实例并填写新实例的参数时,我希望出现枚举选项(我想我至少在寻找枚举)。

实例将要求(如上)(X 坐标、Y 坐标、类型)

Dim NewClass As New clsItem(50, 75, Type.Computer)**

或者Type.PrinterType.Router....

Type.[whatever] 的实际值可以只是一个数字,我想是 (0,1,2....)。但是我该如何设置它,以便在我实际编写这个类时我可以创建一个使用它的属性?

Dim something As IntegerAs String。所以我想我需要 Dim something As HardwareType(或我将命名的任何名称)。

Public Property Type As HardwareType

在这个类中创建一个结构有用吗?还是有更好的办法?

编辑 1

Public Class clsItem

    Public Property PointX As Integer
    Public Property PointY As Integer

    Public Property ItemType As Integer


    Sub New(X As Integer, Y As Integer, Type As Integer)
        PointX = X
        PointY = Y
        ItemType = Type
    End Sub

End Class

我想上面可能是一种方法,因为这只是一个相当简单的类。

但我想在Sub New 中以Type 的形式传递,类似于

Type.Computer
Type.Printer
Type.Switch
Type.Router

所以整数可能不是我真正想要的。我需要创建 Type.[something] 并为每个设置一个值,这样当我想实例化此类时,我就可以在我的程序中迭代 Type

【问题讨论】:

  • 公平的问题,但您最好为假设的类以及如何使用而不是叙述提供一些代码。
  • ItemType 定义为 Steven Doggart 建议的枚举,并将其也传递给 ctor

标签: vb.net class enums


【解决方案1】:

您正在寻找的东西称为构造函数。构造函数就像一个方法,每次创建类的对象时都会调用它。如果构造函数有参数,则必须在创建对象时将参数传递给这些参数(例如New Item(50, 75, HardwareType.Computer))类中的构造函数名称始终为New

Public Class Item
    Public Sub New(x As Integer, y As Integer, t As HardwareType)
        Me.X = x
        Me.Y = y
        Me.Type = t
    End Sub

    Public Property X As Integer
    Public Property Y As Integer
    Public Property [Type] As HardwareType
End Class

要为参数提供定义的常量选项列表,您需要将其声明为Enum

Public Enum HardwareType
    Computer
    Printer
    Switch
    Router
End Enum

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多