SetZIndex
được xác định trên lớp Panel
, trong đó Canvas
xuất phát từ đó. Trình biên dịch tạo ra một cảnh báo nói rằng bạn đang sử dụng một phương thức tĩnh trên một kiểu con. Đây không phải là sự cố thực tế nhưng có thể dẫn đến nhầm lẫn khi được sử dụng theo những cách nhất định. Vì SetZIndex
sẽ không hoạt động trở lại, đó không phải là vấn đề.
Nhưng hãy tưởng tượng như sau:
var ftpRequest = (FtpWebRequest) HttpWebRequest.Create("ftp://my.ftp.com");
Create
thực sự là một phương pháp tĩnh của WebRequest
, nhưng được sử dụng trên HttpWebRequest
thay vào đó, bởi vì nó là một nguồn gốc loại và bạn có thể làm như vậy. Vì vậy, bạn mong muốn nó là một yêu cầu web đang được tạo ra, phải không? Nhưng nó không phải là, nó tạo ra một FtpWebRequest
, bởi vì nó được chỉ định trong URI.
Edit:
tôi muốn chỉ ra rằng nói chung, những lời cảnh báo trình biên dịch là có một lý do, đó là cách này tồn tại là tốt. Miễn là không có quá tải SetZIndex
được tạo trong lớp Canvas
, cuộc gọi này an toàn. Nhưng khi @SriramSakthivel chỉ ra trong các nhận xét, nếu bất kỳ phương pháp mở rộng hoặc phương pháp tĩnh nào được thêm vào lớp Canvas
(sử dụng công cụ sửa đổi new
) trên đường đi, bởi bạn hoặc bất kỳ ai khác, nó sẽ không còn xuất kết quả mong muốn nữa phải nhận thức được điều đó.
Nguồn
2015-05-18 08:26:50
Khi đoán, 'Canvas' là loại phụ của loại khác và' SetZIndex' được xác định bởi loại sau; không phải bởi 'Canvas'. –