OK vì vậy tôi thừa nhận ngay trên đầu rằng điều này hơi khó hiểu ... nhưng nó phục vụ một mục đích hợp lý. Tôi đang sử dụng C# cho một dự án hiện tại và tôi đang cố gắng tìm cách ghi đè biến thành viên trong một lớp dẫn xuất, nhưng truy cập biến được ghi đè trong một phương thức lớp cơ sở. Để làm cho mọi thứ trở nên “giải trí” tốt hơn nếu biến thành viên bị ghi đè là tĩnh (điều này KHÔNG được hiển thị trong mã ví dụ bên dưới).C# Ghi đè biến thành viên được sử dụng bởi phương pháp lớp cơ sở
Đây là mẫu mã của tôi:
class baseclass
{
protected string[] array = null;
public string method()
{
string str = "";
foreach (string x in this.array)
{
str += x + " ";
}
return str;
}
}
class subclass1 : baseclass
{
new string[] array = new string[]
{
"class1value1",
"class1value2",
"class1value3",
"class1value4"
};
}
class subclass2 : baseclass
{
new string[] array = new string[]
{
"class2value1",
"class2value2",
"class2value3",
"class2value4"
};
}
Bất kỳ suy nghĩ là tại sao điều này không làm việc và là một cách để có được xung quanh nó?
Biến thành viên không đa hình như phương pháp. Khởi tạo mảng để chứa các giá trị mong muốn trong mỗi lớp con. –