Abrufen der Größe des Typs, der durch die Variable vom Typ „Typ“ beschrieben wird [Duplikat]C#

Ein Treffpunkt für C#-Programmierer
Guest
 Abrufen der Größe des Typs, der durch die Variable vom Typ „Typ“ beschrieben wird [Duplikat]

Post by Guest »

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

Code: Select all

Type someType = typeof(double);
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post