2012-01-26 6 views
0

モジュールレベルでユーザー定義型定数を定義することは可能ですか?クラススコープでの定数UDT

Type MyType 
    name as String 
    description as String 
End Type 

' Something like this 
Private Const OneType as MyType = "Name" "Description" 

答えて

2

いいえ、Constはユーザー定義型では機能しません。一番近いのは、プロパティ取得しか持たないクラスを作成することです。

Public Property Get Name() As String 
    Name = "Name" 
End Property 

Public Property Get Description() As String 
    Description = "Description" 
End Property 

あなたが異なる値を持つクラスの複数のインスタンスを持つようにしたいが、まだ値が一定になるようにしたい場合は、一度だけ使用することができます初期化ルーチンを追加します。

Private sName As String 
Private sDescription As String 

Private Sub Class_Initialize() 
    sName = "" 
End Sub 

Public Sub Initialize(Name As String, Description As String) 
    If Len(sName) = 0 Then 
     sName = Name 
     sDescription = Description 
    Else 
     MsgBox "This instance of MyClass is already initialized!" 
    End If 
End Sub 

Public Property Get Name() As String 
    Name = sName 
End Property 
Public Property Get Description() As String 
    Description = sDescription 
End Property 

次に、クラスのインスタンスを宣言します。

Dim cMyClass1 As New MyClass, cMyClass2 as New MyClass 
cMyClass1.Initialize("Name","Description") 
cMyClass2.Initialize("DiffName","OtherDescription") 
+0

+1いい例 – brettdj

+0

ありがとう、私はそれをします。 – Triztian

関連する問題