2010-01-27 30 views
5

Tôi đang cố gắng lưu dấu thời gian vào một hằng số ở đầu chương trình thực thi của chương trình để được sử dụng trong suốt chương trình. Ví dụ:Có thể khai báo hằng số động trong VB .NET không?

Const TIME_STAMP = Format(Now(), "hhmm") 

Tuy nhiên, mã này tạo ra lỗi trình biên dịch - "Biểu thức liên tục là bắt buộc". Điều đó có nghĩa là tất cả các hằng số trong VB .NET phải chứa dữ liệu phẳng, tĩnh, mã hóa cứng không? Tôi biết rằng có thể khởi tạo một hằng số với một giá trị động trong các ngôn ngữ khác (chẳng hạn như Java) - những gì làm cho nó một hằng số là sau khi gán ban đầu, bạn không còn có thể thay đổi nó nữa. Có một tương đương trong VB .NET?

Trả lời

6

Điều bạn đang tìm kiếm là từ khóa chỉ đọc. Dấu thời gian phải được tính toán trong thời gian chạy và không thể không đổi.

ReadOnly TIME_STAMP As String = Format(Now(), "hhmm") 
7

Bạn cần phải làm cho nó Shared Readonly thay vì Const - sau này chỉ áp dụng cho thời gian biên dịch hằng số. Shared Readonly sẽ vẫn ngăn mọi người thay đổi giá trị.

Java không thực sự là một khái niệm như Const - nó chỉ phát hiện khi giá trị static final thực sự là hằng số biên dịch.

1

Theo định nghĩa, hằng số không động. Nếu bạn muốn có một biến thể được thiết lập cùng một lúc, và không được sửa đổi một lần nữa, tôi tin rằng bạn đang tìm kiếm cho từ khóa ReadOnly ...

Public Shared ReadOnly TIME_STAMP = Format(Now(), "hhmm") 

Lưu ý rằng 'chung' là không bắt buộc.

+0

tại sao có các bracers giữa 'Shared'? – Pacerier

+0

Vì đó là (tùy chọn) tùy thuộc vào cách thư viện được thiết kế. –

+0

nó là gây hiểu nhầm mặc dù – Pacerier

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