Angenommen, ich habe eine Variable vom Typ type, also so etwas wie
Code: Select all
Type someType = typeof(double);
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);
}
}
BEARBEITEN:
Diese Antwort wurde als Duplikat von< geschlossen /p>
Ich bin mit der Entscheidung nicht einverstanden, oder genauer gesagt, ich verstehe nicht, warum es sich bei den beiden Fragen um Duplikate handelt. Hier ist mein Verständnis:
- In der verknüpften Frage hat das OP eine Variable x vom Typ int und möchte die erhalten Größe von x, die gleich sizeof(int) ist, unabhängig vom Wert von x.
- In meiner Frage habe ich eine Variable x vom Typ Type und der Wert, den ich berechnen möchte, ist davon abhängig der Wert von x. Wenn zum Beispiel x==typeof(double), dann möchte ich, dass meine Funktion sizeof(double) zurückgibt, während ich möchte, dass dies bei x==typeof(float) der Fall ist return sizeof(float).
Ich stimme jetzt zu, dass die Antwort a ist Duplikat, in gewissem Sinne war die verlinkte Antwort tatsächlich die Frage, was ich hier geschrieben habe eins, aber der ursprüngliche Wortlaut war etwas abwegig.