Mã C++ này kiểm tra xem o
có phải là Node *
và nếu có, hãy gọi phương thức trên d
.C# tương đương với dynamic_cast của C++ là gì?
if (Node * d = dynamic_cast<Node *>(o)) d->do_it();
Cách ngắn nhất và/hoặc hiệu quả nhất để viết tương đương trong C# là gì?
đánh bại tôi vào nó, 1 về sự khác biệt giữa struct và class (về tính hợp lệ của 'as') –
tại sao bạn không sử dụng toán tử "is" trên các kiểu tham chiếu? 'if (o là Node) {(o là Node) .do_it(); } ' –
@JohnRuiz không có lý do gì bạn không thể. Trong thực tế, phương thức thứ hai sẽ làm việc bất kể Node là một cấu trúc hay một lớp – Servy