2013-08-05 27 views
5

buổi chiều tốt,thông số tại Khởi Class' trong VBA

Tôi tự hỏi nếu nó là có thể, bằng ngôn ngữ VBA, để truyền tham số cho một lớp trên đó là thời gian khởi tạo, như thực hiện bằng các ngôn ngữ hướng đối tượng như vậy như Java, nơi bạn có thể tạo các hàm tạo tham số. sự kiện "Class_Initialize()" không cho phép tôi nhập các tham số. Làm thế nào tôi có thể giải quyết vấn đề này?

tất cả những gì tốt nhất.

+0

Thật không may, bạn không thể làm một việc như vậy. Chỉ có hai bước workaround có thể làm điều: Bước 1-initialization, 2 bước gọi phương pháp hoặc tài sản mà vượt qua bất kỳ tham số. –

Trả lời

2

tạo ảnh của riêng bạn để bao quanh?

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

đó là khá tốt. cảm ơn rất nhiều vì sự hỗ trợ nhanh chóng của bạn. –

7

Cách thay thế gần nhất là mẫu nhà máy;

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

đó là khá tốt. cảm ơn rất nhiều vì sự hỗ trợ nhanh chóng của bạn. –

+0

Tôi không hiểu mã. – Brian

Các vấn đề liên quan