2010-09-18 22 views
5

Thỉnh thoảng tôi nhận được sự phù hợp với hình mẫu khó chịu và cảnh báo thụt lề khi biên dịch F #. Có cách nào để tắt cảnh báo không? Tôi khá OCD hơn cảnh báo.F # Suppress Warnings

+0

Có lẽ giải quyết những lời cảnh báo? :) – ChaosPandion

+1

Tôi thực sự cẩn thận về việc tắt cảnh báo trùng khớp mẫu. Và xem xét cú pháp F # có thể sử dụng thụt đầu dòng để xác định phạm vi, tôi sẽ không bỏ qua những cảnh báo đó - tôi sẽ cố gắng hiểu chúng. –

+2

Có cách nào để thực hiện điều này trên cơ sở từng trường hợp không? Một vài lần tôi có trường hợp mà biết những điều trình biên dịch không, ví dụ, số lượng các nhóm một trận đấu regex sẽ sản xuất. – gatoatigrado

Trả lời

7

Trong trường hợp bạn quên, bạn có thể gõ

let rec x = lazy(x.Value) 

và nhận được cảnh báo

này và các đệ quy tham chiếu đến đối tượng (s) được xác định sẽ là được kiểm tra để có độ sáng khởi tạo khi chạy qua việc sử dụng tham chiếu bị trễ . Điều này là do bạn đang xác định một hoặc nhiều đối tượng đệ quy , thay vì đệ quy các hàm đệ quy. Cảnh báo này có thể bị chặn bằng cách sử dụng '#nowarn' 40 '' hoặc '--nowarn: 40'.

cho thấy bạn có thể sử dụng cờ trình biên dịch --nowarn trên dòng lệnh hoặc sử dụng mã băm chỉ thị #nowarn trong mã của bạn. Số cảnh báo cho mỗi cảnh báo sẽ là một phần của đầu ra xây dựng (danh sách lỗi Visual Studio không hiển thị số, vì vậy nếu trong VS, xây dựng và sau đó kiểm tra đầu ra xây dựng). Ngoài ra, nếu bên trong VS, bạn có thể truy cập trang thuộc tính dự án, tab "Xây dựng" và sử dụng công cụ chọn "cảnh báo cấp" và "chặn cảnh báo" (danh sách số phân tách bằng dấu chấm phẩy) để kiểm soát cảnh báo nào được trao đổi qua giao diện người dùng VS.

(BTW, tôi tin rằng #nowarn chỉ tắt cảnh báo trong tập tin hiện tại, trong khi --nowarn tắt nó cho toàn bộ dự án được biên soạn.)

+0

Câu trả lời hay Brian –

2

Xem: Compiler Options (F#)

--nowarn:<int-list>:

Disable cảnh báo cụ thể được liệt kê bởi số. Tách riêng từng số cảnh báo bằng dấu phẩy. Bạn có thể khám phá số cảnh báo cho bất kỳ cảnh báo nào từ kết quả biên dịch.

Tùy chọn trình biên dịch này tương đương với tùy chọn trình biên dịch C# có cùng tên . Để biết thêm thông tin, xem /nowarn (C# Compiler Options).

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