Tôi hiểu ghi đè phương thức/chức năng xác định lại việc triển khai thực hiện trong lớp dẫn xuất từ việc triển khai thực hiện trong lớp cơ sở.Tôi có nên gọi thực hiện lớp cơ sở khi ghi đè một phương thức trong C# cho ASP.NET?
Bây giờ những gì confuses me, là nếu tôi ghi đè lên một lớp trong ASP.NET như CreateChildControls()
(Tôi nhặt nó một cách ngẫu nhiên không có lý do cụ thể), VS2008 tự động tạo ra:
protected override void CreateChildControls()
{
base.CreateChildControls();
}
đủ tốt, việc thực hiện mặc định chỉ cần gọi lớp cơ sở 'CreateChildControls()
.
Vì vậy, nếu tôi muốn chạy một số mã, vì tôi không biết làm thế nào base.CreateChildControls()
, tôi nên làm điều này:
protected override void CreateChildControls()
{
/*My Code Here*/
base.CreateChildControls();
}
hoặc, bỏ qua những gì base.CreateChildControls()
hoàn toàn và chỉ cần làm
protected override void CreateChildControls()
{
/*My Code Here*/
}
Tôi thực sự ngạc nhiên rằng bạn sẽ được phép ghi đè lên một lớp cơ sở mà bạn không thuộc quyền sở hữu. – Matt
Tôi phải có tự do đó. Chỉ vì tôi là con của bạn, không có nghĩa là tôi muốn làm mọi thứ như bạn. Đôi khi, tôi cần phải ra ngoài thế giới và làm những việc theo cách riêng của mình. Bạn sẽ là cha mẹ bảo vệ quá mức nếu bạn buộc tôi phải thực hiện. :) –
Bắt đầu từ thực tế là tôi đang gọi lớp cơ sở khi ghi đè trong 'Điều khiển' tùy chỉnh của tôi, về việc ghi đè' OnXxxx' tôi thường nhận được rằng tôi gọi 'base.OnXxxx' ở cuối phương thức dẫn xuất của tôi. Có bất kỳ quy tắc nào về việc có nên gọi 'base.CreateChildControls' ở đầu hoặc cuối phương thức dẫn xuất không? – superjos