C# 确定实例是否为特定类型的最佳方法
我正在做一个C#项目,我发现自己遇到了这种情况:C# 确定实例是否为特定类型的最佳方法,c#,.net,reflection,types,casting,C#,.net,Reflection,Types,Casting,我正在做一个C#项目,我发现自己遇到了这种情况: TypeCode code = value == null ? TypeCode.DBNull : TypeCode.GetTypeCode(value.GetType()); switch(code) { case TypeCode.DBNull: data = SerializeNull(); break; case TypeCode.String: data = SerializeString((String) value
TypeCode code = value == null ? TypeCode.DBNull : TypeCode.GetTypeCode(value.GetType());
switch(code) {
case TypeCode.DBNull: data = SerializeNull(); break;
case TypeCode.String: data = SerializeString((String) value); break;
case TypeCode.Int32: data = SerializeInt32((Int32) value); break;
// ... MORE TYPES
}
我的问题是:
使用这种“类型确定”技术比使用这种技术有什么优势吗
if(value == null) data = SerializeNull();
else if(value is String) data = SerializeString((String) value);
else if(value is Int32) data = SerializeInt32((Int32) value);
至于我的观点,我觉得最后一个更容易理解和实现
我还是想知道是否有性能问题
提前感谢这似乎仍然是个问题,因为
数据
可能只是一个对象
,以后必须向下转换。是否存在此数据不是强类型的原因?运行时vs编译时vs继承:)不能对自定义对象使用类型码,例如值为MyClass,但您可能不需要这样做。@BradleyDotNET数据只是一个字节数组,包含给定值的序列化字节。@user3779753该问题似乎是重复的。我会读的,让你保持联系