Hôm nay, tôi đã tìm thấy thứ gì đó trong mã cũ. Nó có "tĩnh mới" cho một chức năng. Nó trông như thế nàyĐiểm sửa đổi "tĩnh mới" cho một hàm là gì?
class Foo
{
public static void Do()
{
Console.WriteLine("Foo.Do");
}
}
class Bar: Foo
{
public static new void Do()
{
Console.WriteLine("Bar.Do");
}
}
Tôi không hiểu được tĩnh mới modifier cho phương pháp Do trong lớp Bar. Trong C#, phương thức tĩnh chỉ có thể được gọi với tên lớp thay vì tên đối tượng. Vì vậy, tôi không nghĩ rằng có bất kỳ sự khác biệt giữa việc có "mới" và không.
Nói chung, nếu một số cú pháp là không cần thiết, C# chỉ coi đó là lỗi. Bất kỳ ai cũng có ý tưởng về lý do tại sao C# cho phép cú pháp như vậy?
Điều đáng chú ý là nó _only_ ngăn chặn cảnh báo. Không có hiệu ứng nào khác. –
Điểm tốt. Tôi thêm nó vào anwer. –
trong khi nó chỉ ngăn chặn các cảnh báo, nó làm cho ý định rõ ràng (để tránh bất kỳ sự nhầm lẫn), kiểm tra câu trả lời của tôi – eglasius