obj有Type了为什么还要有TypeCode呢?
例如sbyte的Type是System.SByte,TypeCode是SByte。
我的问题是,既然Type包含了类型相关的信息,.net为什么还要给object弄一个TypeCode呢?
它的作用和存在的意义是什么,什么时候会用到呢?
谢谢。
------解决方案--------------------http://msdn.microsoft.com/zh-cn/library/system.typecode(v=VS.80).aspx
我的理解是
Type当然已经表达了对象的类型.但是,如果你要根据类型执行不同的操作时,如何比较呢?
若直接使用Type,你比较的目标也应该是个Type,你还需要通过new一个对象获取Type或者typeof类型获取Type。然后执行对象间的比较。
但使用TypeCode枚举,就容易多了。就是整数之间的比较。效率会更高。
------解决方案--------------------楼主也看花眼了,这里没要对象实例
Type.GetTypeCode(Type type);
------解决方案--------------------
呵呵。这个问题我也不是很清楚。如果是静态方法,则所有类型、结构、类都应该具有该方法。但事实上只有Type对象和事例具有此方法。
private void button_Click(object sender, EventArgs e)
{
MessageBox.Show(Type.GetTypeCode(typeof(SByte)).ToString());
MessageBox.Show(Type.GetTypeCode(typeof(c)).ToString());
MessageBox.Show(Type.GetTypeCode(typeof(s)).ToString());
}
使用上面的方式,不需要初始化目标类型本身。Typeof可直接从类型获取Type对象。
另外,TypeCode只给出类或对象的基本类型。例如所有Class和Struce都是Object。
class c
{ }
struct s
{ }