Equivalente de reinterpret_cast de C ++ en C #
Me pregunto cuál es el equivalente de C ++reinterpret_cast
Cía#!?
Aquí está mi muestra:
class Base
{
protected int counter = 0;
}
class Foo : Base
{
public int Counter
{
get { return counter; }
}
}
Base b = new Base();
Foo f = b as Foo; // f will be null
No tengo ninguna objeción por quéf
Será nulo como debería ser. Pero si fuera C ++ podría haber escritoFoo f = reinterpret_cast<Foo>(b);
y conseguir lo que quería. ¿Qué puedo hacer para lograr lo mismo en C #?
PD. Estoy asumiendo queBase
yFoo
son coherentes con los datos
[ACTUALIZAR]
Aquí hay un escenario simple donde unreinterpret_cast
podría ser útil:
Considere escribir una biblioteca XXX-RPC en la que no tenga control sobre los parámetros entrantes ni sobre la firma de los servicios a los que llamar. Se supone que su biblioteca debe llamar al servicio solicitado con los parámetros dados. Si C # es compatiblereinterpret_cast
Yo podría simplementereinterpret_cast
Los parámetros dados en los esperados y llamar al servicio.