5

Có mã tầm thường như sau:Lỗi Roslyn? Mở viên không chia sẻ, tôi nhận được lỗi mà tôi đang sử dụng 'viên initializer chia sẻ'

Class A 

    Private value As Integer = 1 

    Sub Action(Optional param1 As Integer = value) 
    End Sub 

End Class 

Visual Studio phàn nàn về giá trị mặc định (value) với lỗi BC30369 :

Không thể tham chiếu đến thành viên thể hiện của lớp từ trong phương thức chia sẻ hoặc trình khởi tạo thành viên được chia sẻ mà không có cá thể rõ ràng của lớp.

Đây có phải là lỗi đúng cho trường hợp này không? Phương thức này không được chia sẻ.

Trong Visual Studio 2012 hoặc năm 2013, các lỗi trong trường hợp tương tự là

biểu hiện liên tục là bắt buộc.

điều gì hoàn toàn hợp lý.

+0

Thật kỳ lạ, tôi nhận được "Biểu thức liên tục là bắt buộc" – Steve

+0

Có, không sử dụng VS2015 nhưng năm 2013. – Steve

Trả lời

2

Sau khi nghiên cứu thêm, tôi nghĩ rằng có một vấn đề theo thứ tự kiểm tra được thực hiện bởi trình biên dịch.

Nếu tôi thay đổi mã, làm cho value viên Shared, tôi nhận được kết quả chính xác: Lỗi BC30059

biểu hiện liên tục là bắt buộc.

Vì không có gì ngoại trừ hằng số có thể được đặt vào giá trị mặc định của Tùy chọn khoản, kiểm tra trên BC30059 ("biểu hiện liên tục được yêu cầu.") Nên được rõ ràng thực hiện "sớm hơn" so với việc kiểm tra cho BC30369 (được hiển thị trong câu hỏi).

Tôi đã tạo bug report at Microsoft Connect.

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