2013-08-05 13 views
5

dobry,Parametry przy inicjalizacji klasy w VBA

Zastanawiam się, czy jest to możliwe, w języku VBA, aby przekazać parametry do klasy na nim czas inicjalizacji, jak to zrobiono w obiektowych językach takich jako Java, gdzie możesz tworzyć sparametryzowane konstruktory. zdarzenie "Class_Initialize()" nie pozwala mi wprowadzać parametrów. jak mogę rozwiązać ten problem?

Wszystkiego najlepszego.

+0

Niestety, nie możesz zrobić czegoś takiego. Możliwe jest tylko obejście dwuetapowe: pierwszy krok - inicjalizacja, drugi krok - metoda wywołania lub właściwość, która przekazuje dowolny parametr. –

Odpowiedz

2

tworzyć własne na opakowaniu?

Sub new_myClass(str1 as String, int1 as Integer) As myClass 
    Dim mc As myClass 
    mc.int_attribute = int1 
    mc.str_attribute = str1 
    '... 
    return mc 
End Sub 
+0

to całkiem nieźle. bardzo dziękuję za szybką pomoc. –

7

Najbliższa alternatywa to wzór fabryczny;

public function CreateMyClass(i as integer, str as string) As cMyClass 
    Set CreateMyClass = New cMyClass 
    '// a method within class to accept constructor-like args; 
    CreateMyClass.ctor i, str 
    '// alternatively setup via properties 
end function 

... 

dim myClass As cMyClass 
set myClass = CreateMyClass(123, "Hello") 
+0

to całkiem dobrze. bardzo dziękuję za szybką pomoc. –

+0

Nie rozumiem kodu. – Brian

Powiązane problemy