Tôi có lớp cơ sở sau đây:Không thể ghi đè lên tài sản của bảo vệ thiết
abstract class Base
{
public abstract object Var
{
get;
protected set;
}
}
Và lớp này có nguồn gốc:
class Derived : Base
{
public override object Var
{
get {//code here
}
set {//code here -- I get error here!
}
}
}
Nhưng tôi nhận được lỗi này:
Cannot change access modifier when overriding 'protected' inherited member 'Var'
tôi đã thử thêm một từ khóa protected
và private
trước khi đặt nhưng không giúp được gì. Làm thế nào để sửa lỗi này?
UPDATE:
Các cơ sở lớp phải đảm bảo rằng lớp con cung cấp giá trị cho Var
lúc sáng tạo. Vì vậy, tôi cần phải có setter khai báo trong lớp cơ sở.
Cách khác, tôi có thể khai báo biến thành viên riêng để thực hiện việc này và xóa bộ đặt, nhưng đó không phải là một tùy chọn như được thảo luận here.
Oh my god! Ngu ngốc VS! Như tôi đã nói trong bài viết của mình, tôi đã thử điều này và nó không giúp được gì. Tôi đã thử lại khi bạn đề cập đến nó, nó vẫn không hiệu quả, tôi đã xem lại câu trả lời của bạn, biên dịch lại, và nó đã biến mất! Vậy tôi phải làm gì bây giờ? Tôi có nên chấp nhận câu trả lời của bạn hay tôi nên xóa bài đăng của mình? – atoMerz
@AtoMerZ - Tôi sẽ chấp nhận câu trả lời hay nhất và tiếp tục. Kể từ khi câu hỏi đã upvoted câu trả lời, bạn sẽ cần một mod để loại bỏ nó. Không đáng để gặp rắc rối cho bất cứ ai. –