2009-03-11 33 views
17

Có cách nào để tắt tùy chọn nghiêm ngặt chỉ với một dòng mã không?Tùy chọn chuyển VB.NET Tắt hoàn toàn trong dòng

Tôi đang thực hiện một số công việc bảo trì và tôi cần "lừa" chỉ ở một nơi và tôi không muốn hạ thấp tiêu chuẩn cho toàn bộ tệp.

+0

Tại sao bạn nghĩ rằng bạn cần "lừa gạt"? Bất kỳ phép đúc nào có thể ở chế độ không nghiêm ngặt cũng có thể được thực hiện ở chế độ nghiêm ngặt. Trình biên dịch chỉ tạo mã cho bạn ở chế độ không nghiêm ngặt. – Guffa

+2

@Guffa: Điều gì về cuối ràng buộc đối tượng COM? Một '[nostrict] someComObject.someMethod' đơn giản sẽ dễ đọc hơn nhiều so với việc sử dụng sự phản chiếu. (Và có, có những trường hợp ràng buộc muộn là thích hợp hơn so với việc tạo các tệp DLL interop.) – Heinzi

Trả lời

16

Đáng buồn thay, không thể có một dòng mã trong một tệp. Xem số MSDN docs.

Mặt khác, bạn có thể làm cho dòng mã của bạn trở thành một hàm riêng biệt, đặt nó trong một tệp mới với thuộc tính lớp một phần và đặt Tùy chọn tắt nghiêm ngặt trên một tệp đó. Các trình biên dịch IL có lẽ sẽ inline chức năng của bạn anyway, do đó, nó sẽ được tương đương theo chiều kim đồng hồ, nhưng sẽ được xấu xí từ một quan điểm thực tế của xem.

+0

Cảm ơn Mike. Đó chính xác là những gì tôi đã làm. Có, nó là xấu xí, nhưng ổn định. – Jeff

4

Vì nó phải xuất hiện trong phần khai báo của mô-đun thì không thể sử dụng option strict ở giữa mã. Nhưng nó có thể được thực hiện trên cơ sở mỗi mô-đun có thể giúp một chút.

Và không có đề cập đến trong cuốn sách "Visual Basic 2005 trong một nutshell" cho thấy có một phương pháp để bật hoặc tắt nó.

-2

Một vài ý tưởng khác:

  • Bạn có thể mã hóa với nó chủ yếu là off và bật tính năng này ngay bây giờ và sau đó để đảm bảo phần còn lại của mã của bạn tuân
  • Bạn có thể cấu hình nó để Option Strict là BẬT cho bản phát hành bản phát hành nhưng TẮT để gỡ lỗi các bản dựng.
+2

Joel: -1 bởi vì a) nó sẽ không giúp đỡ trong trường hợp này và b) đó là một ý tưởng tồi tệ xấu. Nó không phải ở tất cả các điều tương tự như chuyển đổi về tối ưu hóa trong một bản phát hành. –

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