Das ist wahrscheinlich eine dumme Frage, aber ich konnte die Antwort auch auf dieser Seite nicht finden (habe dies gefunden, aber es ist nicht genau das, da die empfohlene Lösung darin besteht, Marshal.SizeOf zu verwenden, was meines Wissens nach funktioniert mit nicht verwaltetem Speicher) oder hier.
Angenommen, ich habe eine Variable vom Typ type, also so etwas wie
wobei ich zum Zeitpunkt der Kompilierung den genauen Wert der Variablen nicht kenne (in meiner tatsächlichen Implementierung wird es einer von wenigen (6, um genau zu sein) Werten sein).
Gibt es eine Möglichkeit, die Größe des Typs zu ermitteln, der durch someType beschrieben wird? Da ich derzeit nur 6 mögliche Werte von sometype habe, habe ich das Problem gelöst, indem ich Folgendes geschrieben habe:
Code: Select all
int getTypeSize(Type in)
{
if (in == typeof(double))
{
return sizeof(double);
}
if (in == typeof(short))
{
return sizeof(short);
}
if (in == typeof(int))
{
return sizeof(int);
}
}
was hässlich aussieht und etwas umständlich ist, da ich eine zusätzliche Zeile schreiben müsste, wenn ich Unterstützung für einen neuen Typ hinzufüge. Gibt es einen Weg, die Hässlichkeit zu umgehen?