Este código C++ comprueba si o
es Node *
y si es así, invoca un método en d
.¿Cuál es el equivalente de C# al dynamic_cast de C++?
if (Node * d = dynamic_cast<Node *>(o)) d->do_it();
¿Cuál es la forma más corta y/o más eficiente de escribir el equivalente en C#?
se me adelantó, 1 en la diferencia entre estructura y la clase (en términos de validez de 'as') –
¿Por qué no usarías el operador "is" en los tipos de referencia? 'if (o es Node) {(o como Node) .do_it(); } ' –
@JohnRuiz no hay razón para que no puedas. De hecho, el segundo método funcionará independientemente de si el nodo es una estructura o una clase – Servy