如果我需要一些特定類型的代碼,我可以用typeof
例如:類型碼VS的typeof
private static bool IsNumericType(Type type)
{
return type == typeof(int) || type == typeof(decimal); //etc
}
但我也可以用枚舉TypeCode
private static bool IsNumeric(TypeCode objTypeCode)
{
return objTypeCode == TypeCode.Int16 || objTypeCode == TypeCode.Int32 || objTypeCode == TypeCode.Int64; // etc ||
}
什麼是使用的好處TypeCode
從typeof
從建築和性能角度?在這種情況下,我應該使用兩者中的哪一個?
FYI,代碼從一個值獲得type
/typeCode
:
var type = value.GetType();
var typeCode = Convert.GetTypeCode(value);
PS:這些實施例非常簡化。
PS 2:如果我通過該值,我也可以使用as
,is
等。但在這種情況下,我不喜歡發送,因爲該方法不需要知道該值,只有它的類型。
我很確定前面的代碼片斷會更高效。基於這一點,在編譯時和運行時執行'typeof()'這一事實。它也不需要'Convert.GetTypeCode()'調用。你可以隨時對它進行基準測試,然後看看自己! – itsme86
GetTypeCode隱藏在.NET版本1中。在沒有泛型的絕望日子裏,讓交換語句高效地回到那些黑暗的doomy中非常重要。他們甚至修正了版本7中的switch語句。 –