Entspricht dem reinterpret_cast von C ++ in C #
Ich frage mich, was das Äquivalent von C ++ istreinterpret_cast
in C # !?
Hier ist mein Beispiel:
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
Ich habe nichts dagegen, warumf
wird null sein, da es sein sollte. Aber wenn es C ++ wäre, hätte ich schreiben könnenFoo f = reinterpret_cast<Foo>(b);
und bekomme was ich wollte. Was kann ich tun, um dasselbe in C # zu erreichen?
PS. Ich gehe davon ausBase
undFoo
sind in Bezug auf die Daten konsistent.
[AKTUALISIEREN]
Hier ist ein einfaches Szenario, in dem areinterpret_cast
könnte hilfreich sein:
Erstellen Sie eine XXX-RPC-Bibliothek, in der Sie weder die eingehenden Parameter noch die Signatur der aufzurufenden Dienste steuern können. Ihre Bibliothek soll den gewünschten Dienst mit den angegebenen Parametern aufrufen. Wenn C # unterstütztreinterpret_cast
Ich könnte einfachreinterpret_cast
Geben Sie die angegebenen Parameter in die erwarteten ein und rufen Sie den Service auf.